Grow Planet

Game-based learning in STEAM
and Sustainable Development

GRADES 1–6

Dev environment; changes here will not affect anything in real life, and all emails will be redirected to admins.

Loading, please wait ... ...

DJDT

Versions

Package Name Version
Django 3.2.25
Python 3.11.4
adminsortable2 Adminsortable2 1.0.4
api.v2 V2 2.5.1
bootstrap5 Bootstrap5 1.0.11
cacheops Cacheops 7.0.2
ckeditor Ckeditor 6.7.2
debug_toolbar Debug Toolbar 4.2.0
django_celery_beat Periodic Tasks 2.5.0
django_celery_results Celery Results 2.5.1
django_extensions Django Extensions 3.2.3
django_filters Django_Filters 23.5
django_premailer Django_Premailer 0.2.0
django_user_agents Django_User_Agents 0.4.0
edulms Common 1.63.13
groplay_django Groplay_Django 3.26.2
import_export Import_Export 3.2.0
oauth2_provider Django OAuth Toolkit 2.3.0
polymorphic Polymorphic 3.1.0
rest_framework Django REST framework 3.14.0
silk Silk 5.0.4
statici18n Statici18N 2.4.0
view_breadcrumbs View_Breadcrumbs 2.0.0
webpack_loader Webpack Loader 2.0.1

Time

Resource usage

Resource Value
User CPU time 602.232 msec
System CPU time 58.175 msec
Total CPU time 660.407 msec
Elapsed time 1944.084 msec
Context switches 315 voluntary, 55 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

Settings from edulms.settings

Setting Value
ABSOLUTE_URL_OVERRIDES {}
ADMINS [('Grow Planet Admin', 'apialerts@groplay.com')]
ADMIN_DEBUG_EMAILS {'AZURE_WEBHOOK': False, 'EMAIL_CONFIRM_REMINDERS_SENT': True, 'LICENSE_REMINDERS_SENT': True, 'NEWSLETTER_SENT': True, 'REMOTE_BACKEND_LOGIN_FAILURE': True, 'REMOTE_BACKEND_LOGIN_SUCCESS': False, 'SKOLON_DAILY_SYNC_FAILURE': True, 'SKOLON_DAILY_SYNC_SUCCESS': False, 'SKOLON_WEBHOOK': False, 'STUDENT_BULK_UPDATE': True}
ALLOWED_HOSTS ['dev.growplanet.groplay.com', 'growplanet-lms-dev.azurewebsites.net', '127.0.0.1', 'localhost']
APPEND_SLASH True
AUTHENTICATION_BACKENDS ['users.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS '********************'
AUTH_USER_MODEL 'users.User'
AZURE_ACCOUNT_KEY '********************'
AZURE_ACCOUNT_NAME 'growplanet'
AZURE_CONTAINER 'media-dev'
BASE_DIR PosixPath('/app')
BOOTSTRAP5 {'form_renderers': {'default': 'edulms.bootstrap5.renderers.FormRenderer'}, 'required_css_class': 'required', 'success_css_class': ''}
CACHEOPS {'azure.AzureClassLicense': {}, 'azure.AzureSchoolLicense': {}, 'azure.AzureSubscription': {}, 'contenttypes.ContentType': {'ops': 'all'}, 'education.*': {}, 'edulms.LicensePrice': {}, 'edulms.News': {'ops': 'all'}, 'edulms.Notification': {}, 'edulms.Settings': {}, 'edulms.Tag': {'ops': 'all'}, 'game.Activity': {}, 'game.ActivityType': {'ops': 'all'}, 'game.Area': {}, 'game.Area_disabled_for': {}, 'game.Exam': {}, 'game.ExerciseRoom': {}, 'game.ExerciseRoom_disabled_for': {}, 'help.HelpArticle': {'ops': 'all'}, 'help.PageHelpText': {'ops': 'all'}, 'licenses.*': {}, 'oauth2.Application': {}, 'oauth2.PlayerAccessToken': '********************', 'plays.ExamResult': {}, 'plays.GameSession': {}, 'plays.GameState': {}, 'plays.PhysicsBuild': {}, 'plays.SchoolClassExam': {}, 'plays.Solution': {}, 'plays.VoxelData': {}, 'remote_backends.RemoteIdentity': {}, 'remote_backends.SchoolClassRemoteIdentity': {}, 'remote_backends.SchoolRemoteIdentity': {}, 'remote_backends.StudentRemoteIdentity': {}, 'remote_backends.TeacherRemoteIdentity': {}, 'schools.*': {}, 'skolon.SkolonLicense': {}, 'skolon.SkolonOrganization': {}, 'users.Parent': {}, 'users.Player': {}, 'users.PlayerAreaPosition': {}, 'users.PlayerToken': '********************', 'users.Student': {}, 'users.Teacher': {}, 'users.TeacherPendingSchoolClass': {}, 'users.User': {}}
CACHEOPS_DEFAULTS {'timeout': 3600}
CACHEOPS_REDIS {'db': 3, 'host': 'growplanet.redis.cache.windows.net', 'password': '********************', 'port': 6380, 'ssl': True}
CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS 'default'
CACHE_MIDDLEWARE_KEY_PREFIX '********************'
CACHE_MIDDLEWARE_SECONDS 600
CALL_COMMAND_SECRET '********************'
CELERY_ACCEPT_CONTENT {'json', 'pickle'}
CELERY_BEAT_MAX_LOOP_INTERVAL 300
CELERY_BEAT_SCHEDULER 'edulms.schedulers:Scheduler'
CELERY_BROKER_URL 'rediss://:ZXL73txQ16Fkv9436TPQvbCVf0dlYfR4qAzCaOGXv5Y=@growplanet.redis.cache.windows.net:6380/3?ssl_cert_reqs=required'
CELERY_RESULT_BACKEND 'django-db'
CELERY_RESULT_EXPIRES datetime.timedelta(days=30)
CELERY_RESULT_EXTENDED True
CELERY_TASK_SERIALIZER 'pickle'
CELERY_TIMEZONE 'Europe/Stockholm'
CELERY_WORKER_TIMER_PRECISION 60
CKEDITOR_CONFIGS {'default': {'bodyClass': 'teacher-material', 'embed_provider': '//ckeditor.iframe.ly/api/oembed?url={url}&callback={callback}&playerjs=true', 'extraPlugins': 'image2,a11yhelp,autoembed,embed,html5video,djangolink', 'removePlugins': 'image,smiley,scayt,flash', 'resize_dir': 'both', 'stylesSet': [{'attributes': {'class': 'yellow-box'}, 'element': 'div', 'name': 'Yellow box'}, {'attributes': {'class': 'dotted-box'}, 'element': 'div', 'name': 'Dotted box'}, {'attributes': {'class': 'fw-image'}, 'element': 'div', 'name': 'Full-width image'}], 'toolbar': 'Custom', 'toolbar_Custom': [['Styles', 'Format', 'Bold', 'Italic', 'Underline', 'Strike', 'Superscript', 'TextColor'], ['Undo', 'Redo'], ['BulletedList', 'NumberedList'], ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'], ['Djangolink', 'Link', 'Unlink', 'Anchor'], ['Image', 'Html5video', 'SpecialChar'], ['Source', 'Maximize']], 'width': '800px'}, 'minimal': {'removePlugins': 'image,smiley,scayt,flash', 'resize_dir': 'both', 'toolbar': [['Format', 'Bold', 'Italic', 'Underline', 'Strike'], ['Undo', 'Redo'], ['BulletedList', 'NumberedList'], ['Link', 'Unlink']], 'width': '800px'}, 'small': {'extraPlugins': 'image2', 'removePlugins': 'image,smiley,scayt,flash', 'resize_dir': 'both', 'toolbar': [['Format', 'Bold', 'Italic', 'Underline', 'Strike'], ['Undo', 'Redo'], ['BulletedList', 'NumberedList'], ['Link', 'Unlink'], ['Image']], 'width': '800px'}}
CKEDITOR_CONFIG_DEFAULTS {'removePlugins': 'image,smiley,scayt,flash', 'resize_dir': 'both', 'width': '800px'}
CKEDITOR_UPLOAD_PATH 'ckeditor'
CONTENT_SECURITY_POLICY {'default-src': "'self' cke4.ckeditor.com fonts.gstatic.com", 'img-src': "'self' growplanet.blob.core.windows.net *.googleusercontent.com " '*.groplay.com cdn.redoc.ly data:', 'media-src': "'self' *.groplay.com growplanet.blob.core.windows.net data:", 'script-src': "'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net blob:", 'style-src': "'self' 'unsafe-inline' fonts.googleapis.com"}
COOKIE_CONSENT_COOKIE_NAME 'cookieconsent_status'
CORS_ALLOW_ALL_ORIGINS True
CORS_ALLOW_CREDENTIALS True
CORS_EXPOSE_HEADERS ['ETag']
CORS_URLS_REGEX '^/(api|oauth2)/.*$'
CSRF_COOKIE_AGE 31449600
CSRF_COOKIE_DOMAIN None
CSRF_COOKIE_HTTPONLY False
CSRF_COOKIE_NAME 'csrftoken'
CSRF_COOKIE_PATH '/'
CSRF_COOKIE_SAMESITE 'Lax'
CSRF_COOKIE_SECURE False
CSRF_FAILURE_VIEW 'edulms.views.concrete.csrf_failure'
CSRF_HEADER_NAME 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS []
CSRF_USE_SESSIONS True
DATABASES {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'edulms.db.mssql', 'HOST': 'growplanet.database.windows.net', 'NAME': 'growplanet-dev', 'OPTIONS': {'driver': 'ODBC Driver 18 for SQL Server', 'extra_params': 'Authentication=ActiveDirectoryMsi'}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}, 'dev': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'edulms.db.mssql', 'HOST': 'growplanet.database.windows.net', 'NAME': 'growplanet-dev', 'OPTIONS': {'driver': 'ODBC Driver 18 for SQL Server', 'extra_params': 'Authentication=ActiveDirectoryMsi'}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}, 'local': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': 'dev.sqlite3', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}, 'production': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'edulms.db.mssql', 'HOST': 'growplanet.database.windows.net', 'NAME': 'growplanet', 'OPTIONS': {'driver': 'ODBC Driver 18 for SQL Server', 'extra_params': 'Authentication=ActiveDirectoryMsi'}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, '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 {'HIDE_IN_STACKTRACES': ('socketserver', 'threading', 'wsgiref', 'debug_toolbar', 'django.db', 'django.core.handlers', 'django.core.servers', 'django.utils.decorators', 'django.utils.deprecation', 'django.utils.functional', 'django.template', 'sentry_sdk', 'django.views'), 'OBSERVE_REQUEST_CALLBACK': <function observe_request at 0x7204d2308220>, 'RENDER_PANELS': True, 'RESULTS_CACHE_SIZE': 20, 'SHOW_COLLAPSED': True, 'SHOW_TOOLBAR_CALLBACK': <function show_toolbar at 0x7204d23082c0>}
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', 'debug_toolbar.panels.signals.SignalsPanel', '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_FILE_STORAGE 'edulms.storage.AzureStorage'
DEFAULT_FROM_EMAIL 'Grow Planet <alerts-growplanet@groplay.com>'
DEFAULT_HASHING_ALGORITHM 'sha256'
DEFAULT_INDEX_TABLESPACE ''
DEFAULT_TABLESPACE ''
DEFAULT_USER_LANGUAGE 'en'
DISALLOWED_USER_AGENTS []
DJANGO_DB 'dev'
DJANGO_ENVIRONMENT 'dev'
EMAIL_BACKEND 'edulms.mail.EmailBackend'
EMAIL_CONFIGS {'default': {'address': 'Grow Planet <alerts-growplanet@groplay.com>', 'host': 'mailcluster.loopia.se', 'password': '********************', 'port': 465, 'use_ssl': True, 'user': 'alerts-growplanet@groplay.com'}, 'reports': {'address': 'Grow Planet <reports-growplanet@groplay.com>', 'host': 'mailcluster.loopia.se', 'password': '********************', 'port': 465, 'use_ssl': True, 'user': 'reports-growplanet@groplay.com'}}
EMAIL_HOST 'mailcluster.loopia.se'
EMAIL_HOST_PASSWORD '********************'
EMAIL_HOST_USER 'alerts-growplanet@groplay.com'
EMAIL_PORT 465
EMAIL_SSL_CERTFILE None
EMAIL_SSL_KEYFILE '********************'
EMAIL_SUBJECT_PREFIX '[edulms/dev] '
EMAIL_TIMEOUT 10
EMAIL_USE_LOCALTIME False
EMAIL_USE_SSL True
EMAIL_USE_TLS False
EMAIL_VERIFICATION_REMINDERS [1, 3, 7]
EXAM_DEFINITION_URL 'https://files.groplay.com/growplanet/exams/exam-{slug}.json'
EXAM_QUESTIONS_URL 'https://api.groplay.com/cgi-bin/2/quiz.py?action=getQuestionsById&lang={language}&questionId={question_ids}'
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 1
FIXTURE_DIRS []
FORCE_SCRIPT_NAME None
FORMAT_MODULE_PATH ['edulms.formats']
FORM_RENDERER 'django.forms.renderers.TemplatesSetting'
GROPLAY_EMAIL 'growplanet@groplay.com'
GROPLAY_PHONE '+46766499355'
GROPLAY_PHONE_TRANSLATED '+46 76 6499355'
IGNORABLE_404_URLS []
IMPORT_EXPORT_TMP_STORAGE_CLASS 'edulms.django_import_export.tmp_storages.CustomTempFolderStorage'
INACTIVITY_TIMEOUT_EXEMPTED_VIEWS ['poll-timeout', 'notifications:list']
INACTIVITY_TIMEOUT_SECONDS 1800
INACTIVITY_TIMEOUT_SESSION_KEY '********************'
INSTALLED_APPS ['debug_toolbar', 'modeltranslation', 'dal', 'dal_select2', 'edulms.apps.EdulmsAdminConfig', 'api.v2', 'oauth2', 'edulms.apps.EdulmsConfig', 'groplay_django', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.forms', 'django.contrib.humanize', 'polymorphic', 'rest_framework', 'oauth2_provider', 'webpack_loader', 'django_extensions', 'bootstrap5', 'view_breadcrumbs', 'adminsortable2', 'ckeditor', 'ckeditor_uploader', 'import_export', 'corsheaders', 'django_user_agents', 'cacheops', 'django_premailer', 'django_celery_beat', 'django_celery_results', 'statici18n', 'django_filters', 'users', 'schools', 'game', 'plays', 'api.v1', 'education', 'licenses', 'logs', 'help', 'remote_backends', 'remote_backends.providers.skolon', 'remote_backends.providers.azure', 'remote_backends.providers.google', 'silk']
INTERNAL_IPS ['127.0.0.1']
IS_AZURE_PRODUCTION None
IS_GOOGLE_PRODUCTION None
IS_PRODUCTION False
IS_SKOLON_PRODUCTION None
LANGUAGES [('en', 'English'), ('sv', 'Swedish'), ('fr', 'French')]
LANGUAGES_BIDI ['he', 'ar', 'ar-dz', 'fa', 'ur']
LANGUAGE_CODE 'en'
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
LICENSE_DEFAULT_REMINDERS [10, 5, 1]
LICENSE_DEFAULT_TRIAL_PERIOD 30
LICENSE_POPUP_DAYS_AFTER 60
LICENSE_SOON_EXPIRING_DAYS 12
LICENSE_TEACHER_TRIAL_PERIOD 60
LOCALE_PATHS [PosixPath('/app/locale')]
LOGGING {'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}, 'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}, 'server_filter': {'()': 'edulms.utils.ServerLogFilter'}}, 'formatters': {'django.server': {'()': 'django.utils.log.ServerFormatter', 'format': '[{server_time}] {message}', 'style': '{'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'filters': ['require_debug_true'], 'level': 'DEBUG'}, 'django.server': {'class': 'logging.StreamHandler', 'filters': ['server_filter'], 'formatter': 'django.server', 'level': 'INFO'}, 'logstream': {'class': 'logs.logstream.LogStreamHandler', 'level': 'INFO'}, 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'include_html': True, 'level': 'ERROR'}, 'null': {'class': 'logging.NullHandler'}}, 'loggers': {'django': {'handlers': ['console', 'mail_admins'], 'level': 'INFO', 'propagate': False}, 'django.security.DisallowedHost': {'handlers': ['null'], 'propagate': False}, 'django.server': {'handlers': ['django.server'], 'level': 'INFO', 'propagate': False}, 'edulms': {'handlers': ['null'], 'propagate': False}, 'logstream': {'handlers': ['logstream'], 'level': 'INFO'}, 'oauthlib': {'handlers': ['console'], 'level': 'DEBUG'}}, 'version': 1}
LOGGING_CONFIG 'logging.config.dictConfig'
LOGIN_REDIRECT_URL 'index'
LOGIN_URL 'users:login'
LOGOUT_REDIRECT_URL None
MANAGERS []
MEDIA_ROOT ''
MEDIA_URL 'https://growplanet.blob.core.windows.net/media-dev/'
MESSAGE_LEVEL 10
MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE ['silk.middleware.SilkyMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'corsheaders.middleware.CorsMiddleware', 'edulms.middleware.AltUrlMiddleware', 'edulms.middleware.CSPMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'edulms.middleware.TimezoneMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'edulms.middleware.TutorialMiddleware', 'edulms.middleware.LocaleMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'edulms.middleware.InactivityTimeoutMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django_user_agents.middleware.UserAgentMiddleware', 'edulms.middleware.SetLanguageMiddleware']
MIGRATION_MODULES {}
MODELTRANSLATION_DEFAULT_LANGUAGE 'en'
MONTH_DAY_FORMAT 'F j'
NO_CACHE False
NUMBER_GROUPING 0
OAUTH2_PROVIDER {'ACCESS_TOKEN_ADMIN_CLASS': '********************', 'ACCESS_TOKEN_EXPIRE_SECONDS': '********************', 'OAUTH2_VALIDATOR_CLASS': 'oauth2.validators.PlayerTokenValidator', 'REFRESH_TOKEN_ADMIN_CLASS': '********************'}
OAUTH2_PROVIDER_ACCESS_TOKEN_MODEL '********************'
OAUTH2_PROVIDER_APPLICATION_MODEL 'oauth2.Application'
OAUTH2_PROVIDER_GRANT_MODEL 'oauth2.Grant'
OAUTH2_PROVIDER_ID_TOKEN_MODEL '********************'
OAUTH2_PROVIDER_REFRESH_TOKEN_MODEL '********************'
PASSWORD_HASHERS '********************'
PASSWORD_RESET_TIMEOUT '********************'
PASSWORD_RESET_TIMEOUT_DAYS '********************'
PREMAILER_OPTIONS {'base_url': 'https://dev.growplanet.groplay.com/', 'capitalize_float_margin': '********************', 'cssutils_logging_level': 50, 'disable_validation': True, 'strip_important': False}
PREPEND_WWW False
PYFLAME_CONFIG {'FLAMEGRAPH_SCRIPT_EXTRA_ARGS': ['--width=1600'], 'FLAMEGRAPH_SCRIPT_PATH': PosixPath('/app/submodules/FlameGraph/flamegraph.pl')}
REMOTE_BACKENDS {'azure': {'api_url': '********************', 'auth_url': 'https://login.microsoftonline.com/', 'authority': 'https://login.microsoftonline.com/3665e525-0af4-4db9-bda0-e012d4e9a15a', 'basic_scopes': ['User.Read', 'User.ReadBasic.All', 'email'], 'client_id': '2713ccc6-3d7b-4c09-925d-7d92f9204164', 'client_secret': '********************', 'extended_scopes': ['User.Read', 'User.ReadBasic.All', 'EduRoster.ReadBasic', 'email'], 'marketplace_url': 'https://marketplaceapi.microsoft.com/api/saas/subscriptions/', 'offer': {'id': 'growplanet_sell', 'plan_ids': {'class': 'class', 'school': 'school'}, 'publisher_id': 'groplaydigitalab1612451076151'}, 'scopes': ['User.Read', 'User.ReadBasic.All', 'EduRoster.ReadBasic', 'email'], 'tenant': '3665e525-0af4-4db9-bda0-e012d4e9a15a'}, 'google': {'scopes': ['openid', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/classroom.courses.readonly', 'https://www.googleapis.com/auth/classroom.rosters.readonly'], 'web': {'auth_provider_x509_cert_url': 'https://www.googleapis.com/oauth2/v1/certs', 'auth_uri': 'https://accounts.google.com/o/oauth2/auth', 'client_id': '844251137468-m3q3t7j62op0eqta1atjv64s0r15g46k.apps.googleusercontent.com', 'client_secret': '********************', 'javascript_origins': ['http://127.0.0.1:8000', 'http://localhost:8000', 'https://staging.growplanet.groplay.com'], 'project_id': 'grow-planet-312210', 'redirect_uris': ['http://127.0.0.1:8000/remote-backends/google/callback/', 'http://localhost:8000/remote-backends/google/callback/', 'https://dev.growplanet.groplay.com/remote-backends/google/callback/'], 'token_uri': '********************'}}, 'skolon': {'api_url': '********************', 'app_ext_id': 'GrowPlanet', 'auth_url': 'https://idp-test.skolon.com/oauth/auth', 'client_id': 'qjZHxPM6uUA9FnMYn9F8r5xlcGbc2J61', 'client_secret': '********************', 'scope': ['authenticatedUser.groups.read', 'authenticatedUser.profile.read', 'authenticatedUser.school.read', 'authenticatedUser.profile.identifier', 'authenticatedUser.licenses.read'], 'token_url': '********************'}}
REST_FRAMEWORK {'DEFAULT_AUTHENTICATION_CLASSES': ('oauth2_provider.contrib.rest_framework.OAuth2Authentication',), 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_SCHEMA_CLASS': 'api.v2.schemas.Schema', 'EXCEPTION_HANDLER': 'api.v2.views.exception_handler', 'PAGE_SIZE': 1000}
ROOT_URL 'https://dev.growplanet.groplay.com/'
ROOT_URLCONF 'edulms.urls'
SECRET_KEY '********************'
SECURE_BROWSER_XSS_FILTER False
SECURE_CONTENT_TYPE_NOSNIFF True
SECURE_HSTS_INCLUDE_SUBDOMAINS False
SECURE_HSTS_PRELOAD False
SECURE_HSTS_SECONDS 0
SECURE_PROXY_SSL_HEADER None
SECURE_REDIRECT_EXEMPT []
SECURE_REFERRER_POLICY 'same-origin'
SECURE_SSL_HOST None
SECURE_SSL_REDIRECT False
SERVER_EMAIL 'Grow Planet <alerts-growplanet@groplay.com>'
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 'Lax'
SESSION_COOKIE_SECURE True
SESSION_ENGINE 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE True
SESSION_FILE_PATH None
SESSION_SAVE_EVERY_REQUEST False
SESSION_SERIALIZER 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE 'edulms.settings'
SHELL_PLUS_IMPORTS ['import datetime', 'import ipdb', 'import re', 'from django.db.models import CharField, DateField, DateTimeField, ' 'IntegerField, Value as V', 'from django.db.models.functions import Cast, Coalesce, Concat', 'from groplay_django.db import PercentRounded, TrueIf, TrueIfAny', 'from groplay_python.utils import getitem0_nullable']
SHELL_PLUS_PRINT_SQL_TRUNCATE None
SHELL_PLUS_SQLPARSE_FORMAT_KWARGS {}
SHORT_DATETIME_FORMAT 'm/d/Y P'
SHORT_DATE_FORMAT 'm/d/Y'
SIGNING_BACKEND 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS []
SILKY_ANALYZE_QUERIES True
SILKY_AUTHENTICATION True
SILKY_INTERCEPT_FUNC <function <lambda> at 0x7204d230a0c0>
SILKY_MAX_REQUEST_BODY_SIZE 1024
SILKY_MAX_RESPONSE_BODY_SIZE 1024
SILKY_META True
SILKY_PERMISSIONS <function <lambda> at 0x7204d22b0b80>
SILKY_PYTHON_PROFILER True
SILKY_PYTHON_PROFILER_BINARY True
STATICFILES_DIRS [('vendor', PosixPath('/app/assets/vendor')), ('bundles', PosixPath('/app/assets/bundles')), ('statici18n', PosixPath('/app/edulms/static'))]
STATICFILES_FINDERS ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE 'whitenoise.storage.CompressedManifestStaticFilesStorage'
STATICI18N_DOMAIN 'djangojs'
STATICI18N_FILENAME_FUNCTION 'statici18n.utils.default_filename'
STATICI18N_NAMESPACE None
STATICI18N_OUTPUT_DIR 'jsi18n'
STATICI18N_PACKAGES 'django.conf'
STATICI18N_ROOT PosixPath('/app/edulms/static')
STATIC_ROOT PosixPath('/app/static')
STATIC_URL '/static/'
TEMPLATED_EMAIL_BACKEND 'edulms.mail.TemplateBackend'
TEMPLATED_EMAIL_FILE_EXTENSION 'html'
TEMPLATED_EMAIL_TEMPLATE_DIR 'email/'
TEMPLATES [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/app/templates')], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.template.context_processors.static', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'edulms.context_processors.edulms_context'], 'debug': False}}]
TEST_NON_SERIALIZED_APPS []
TEST_RUNNER 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR ','
TIMEZONE_SESSION_KEY '********************'
TIME_FORMAT 'P'
TIME_INPUT_FORMATS ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE 'Europe/Stockholm'
USE_I18N True
USE_L10N True
USE_OAUTH2 True
USE_THOUSAND_SEPARATOR False
USE_TZ True
USE_X_FORWARDED_HOST True
USE_X_FORWARDED_PORT False
WEBGL_BUILD_VIEWER_URL 'https://groplay.com/web-games/planet-build-viewer/'
WEBGL_GAME_URL 'https://www.groplay.com/web-games/planet/'
WEBGL_PLAYER_TOKEN_PARAMETER '********************'
WEBPACK_LOADER {'DEFAULT': {'BUNDLE_DIR_NAME': 'bundles/', 'STATS_FILE': PosixPath('/app/webpack-stats-local.json'), 'TIMEOUT': 5}}
WSGI_APPLICATION 'edulms.wsgi.application'
X_FRAME_OPTIONS 'DENY'
YEAR_MONTH_FORMAT 'F Y'

Headers

Request headers

Key Value
Accept */*
Accept-Encoding gzip, br, zstd, deflate
Client-Ip 216.73.216.171:26429
Cookie => see Request panel
Disguised-Host dev.growplanet.groplay.com
Host dev.growplanet.groplay.com
Max-Forwards 10
Referer https://dev.growplanet.groplay.com/debug/9/
User-Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Was-Default-Hostname growplanet-lms-dev.azurewebsites.net
X-Appservice-Proto https
X-Arr-Log-Id 70c84aee-c90c-4754-9fc1-179ff33b7b7f
X-Arr-Ssl 2048|256|CN=GeoTrust Global TLS RSA4096 SHA256 2022 CA1, O="DigiCert, Inc.", C=US|CN=dev.growplanet.groplay.com
X-Client-Ip 216.73.216.171
X-Client-Port 26429
X-Forwarded-For 216.73.216.171:26429
X-Forwarded-Proto https
X-Forwarded-Tlsversion 1.3
X-Original-Url /classes/1757/
X-Site-Deployment-Id growplanet-lms__e434
X-Waws-Unencoded-Url /classes/1757/

Response headers

Key Value
Content-Language en
Content-Length 89325
Content-Security-Policy default-src 'self' cke4.ckeditor.com fonts.gstatic.com; img-src 'self' growplanet.blob.core.windows.net *.googleusercontent.com *.groplay.com cdn.redoc.ly data:; media-src 'self' *.groplay.com growplanet.blob.core.windows.net data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net blob:; style-src 'self' 'unsafe-inline' fonts.googleapis.com;
Content-Type text/html; charset=utf-8
Referrer-Policy same-origin
Vary Accept-Language, Cookie
X-Content-Type-Options nosniff
X-Frame-Options DENY

WSGI environ

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

Key Value
PATH_INFO /classes/1757/
QUERY_STRING
REMOTE_ADDR 169.254.131.1
REQUEST_METHOD GET
SCRIPT_NAME
SERVER_NAME 0.0.0.0
SERVER_PORT 80
SERVER_PROTOCOL HTTP/1.1
SERVER_SOFTWARE gunicorn/23.0.0

Request

View information

View function Arguments Keyword arguments URL name
schools.views.generic.SchoolClassDetailView () {'class_id': 1757} schools:classes:detail

Cookies

Variable Value
'sessionid' 'gp2j7x7nsra17972p1ib89gzjy8akazc'

Session data

Variable Value
'_auth_user_backend' 'users.backends.ModelBackend'
'_auth_user_hash' 'fafeb74c4b601bc70ea5fa27b46d7239b5b2ef7ecaf5386cb2e6e1d423af5604'
'_auth_user_id' '33151'
'_csrftoken' 'bBGW9ybDa9OJebA7bkGA6iyVJzTdmvPMugGsmzyDM7fyKXW5WUJttzJlchsg0L3d'
'_language' 'en'
'expired_license_notification_id' 265
'session_modals' []
'timezone' 'Europe/Stockholm'
'welcome_messages' []

No GET data

No POST data

SQL queries from 1 connection

  • default 1105.49 ms (54 queries including 13 similar and 13 duplicates )
Query Timeline Time (ms) Action
SELECT TOP 21 [django_session].[session_key],
       [django_session].[session_data],
       [django_session].[expire_date]
  FROM [django_session]
 WHERE ([django_session].[expire_date] > datetime.datetime(2025, 7, 10, 2, 3, 4, 29824, tzinfo=datetime.timezone.utc) AND [django_session].[session_key] = 'gp2j7x7nsra17972p1ib89gzjy8akazc')
SELECT ••• FROM [django_session] WHERE ([django_session].[expire_date] > datetime.datetime(2025, 7, 10, 2, 3, 4, 29824, tzinfo=datetime.timezone.utc) AND [django_session].[session_key] = 'gp2j7x7nsra17972p1ib89gzjy8akazc')
0.81

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(159)
  tz = request.session.get(settings.TIMEZONE_SESSION_KEY)

/app/.venv/lib/python3.11/site-packages/django/contrib/sessions/backends/base.py in get(80)
  return self._session.get(key, default)

/app/.venv/lib/python3.11/site-packages/django/contrib/sessions/backends/base.py in _get_session(238)
  self._session_cache = self.load()

/app/.venv/lib/python3.11/site-packages/django/contrib/sessions/backends/db.py in load(43)
  s = self._get_session_from_db()

/app/.venv/lib/python3.11/site-packages/django/contrib/sessions/backends/db.py in _get_session_from_db(32)
  return self.model.objects.get(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in get(346)
  return qs._no_monkey.get(qs, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT TOP 1 [users_user].[id],
       [users_user].[password],
       [users_user].[last_login],
       [users_user].[is_superuser],
       [users_user].[username],
       [users_user].[first_name],
       [users_user].[last_name],
       [users_user].[email],
       [users_user].[is_staff],
       [users_user].[is_active],
       [users_user].[date_joined],
       [users_user].[language],
       [users_user].[has_logged_in],
       [users_user].[email_verified],
       [users_user].[email_verified_time],
       [users_user].[show_tutorial],
       [users_user].[last_active_class_id],
       [users_user].[previous_login],
       [users_user].[timezone],
       [users_user].[created_by_id],
       [users_user].[is_coworker],
       [users_user].[receives_newsletter]
  FROM [users_user]
 WHERE ([users_user].[is_active] = True AND [users_user].[id] = 33151)
 ORDER BY [users_user].[id] ASC
SELECT ••• FROM [users_user] WHERE ([users_user].[is_active] = True AND [users_user].[id] = 33151) ORDER BY [users_user].[id] ASC
8.63

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in process_request(62)
  if hasattr(request, "user") and isinstance(request.user, User):

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in <lambda>(23)
  request.user = SimpleLazyObject(lambda: get_user(request))

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in get_user(11)
  request._cached_user = auth.get_user(request)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/__init__.py in get_user(184)
  user = backend.get_user(user_id)

/app/users/backends.py in get_user(32)
  return user_qs.filter(pk=user_id).first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(350)
  return self._no_monkey.first(self._clone().cache())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [edulms_recommendpollresult].[id],
       [edulms_recommendpollresult].[user_id],
       [edulms_recommendpollresult].[likeliness],
       [edulms_recommendpollresult].[created]
  FROM [edulms_recommendpollresult]
 WHERE [edulms_recommendpollresult].[user_id] IN (33151)
SELECT ••• FROM [edulms_recommendpollresult] WHERE [edulms_recommendpollresult].[user_id] IN (33151)
7.71

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in process_request(62)
  if hasattr(request, "user") and isinstance(request.user, User):

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in <lambda>(23)
  request.user = SimpleLazyObject(lambda: get_user(request))

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in get_user(11)
  request._cached_user = auth.get_user(request)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/__init__.py in get_user(184)
  user = backend.get_user(user_id)

/app/users/backends.py in get_user(32)
  return user_qs.filter(pk=user_id).first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(350)
  return self._no_monkey.first(self._clone().cache())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT [users_user].[id],
       [users_user].[password],
       [users_user].[last_login],
       [users_user].[is_superuser],
       [users_user].[username],
       [users_user].[first_name],
       [users_user].[last_name],
       [users_user].[email],
       [users_user].[is_staff],
       [users_user].[is_active],
       [users_user].[date_joined],
       [users_user].[language],
       [users_user].[has_logged_in],
       [users_user].[email_verified],
       [users_user].[email_verified_time],
       [users_user].[show_tutorial],
       [users_user].[last_active_class_id],
       [users_user].[previous_login],
       [users_user].[timezone],
       [users_user].[created_by_id],
       [users_user].[is_coworker],
       [users_user].[receives_newsletter],
       [users_teacher].[player_id],
       [users_teacher].[is_test],
       [users_teacher].[user_id],
       [users_teacher].[creation_method]
  FROM [users_teacher]
 INNER JOIN [users_user]
    ON ([users_teacher].[user_id] = [users_user].[id])
 WHERE [users_teacher].[user_id] IN (33151)
SELECT ••• FROM [users_teacher] INNER JOIN [users_user] ON ([users_teacher].[user_id] = [users_user].[id]) WHERE [users_teacher].[user_id] IN (33151)
0.92

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in process_request(62)
  if hasattr(request, "user") and isinstance(request.user, User):

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in <lambda>(23)
  request.user = SimpleLazyObject(lambda: get_user(request))

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in get_user(11)
  request._cached_user = auth.get_user(request)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/__init__.py in get_user(184)
  user = backend.get_user(user_id)

/app/users/backends.py in get_user(32)
  return user_qs.filter(pk=user_id).first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(350)
  return self._no_monkey.first(self._clone().cache())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [users_player].[id],
       [users_player].[points]
  FROM [users_player]
 WHERE [users_player].[id] IN (78437)
SELECT ••• FROM [users_player] WHERE [users_player].[id] IN (78437)
2 similar queries. Duplicated 2 times.
11.52

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in process_request(62)
  if hasattr(request, "user") and isinstance(request.user, User):

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in <lambda>(23)
  request.user = SimpleLazyObject(lambda: get_user(request))

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in get_user(11)
  request._cached_user = auth.get_user(request)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/__init__.py in get_user(184)
  user = backend.get_user(user_id)

/app/users/backends.py in get_user(32)
  return user_qs.filter(pk=user_id).first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(350)
  return self._no_monkey.first(self._clone().cache())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [remote_backends_remoteidentity].[id],
       [remote_backends_remoteidentity].[backend],
       [remote_backends_remoteidentity].[is_active],
       [remote_backends_remoteidentity].[extra_data],
       [remote_backends_remoteidentity].[remote_id],
       [remote_backends_teacherremoteidentity].[remoteidentity_ptr_id],
       [remote_backends_teacherremoteidentity].[teacher_id]
  FROM [remote_backends_teacherremoteidentity]
 INNER JOIN [remote_backends_remoteidentity]
    ON ([remote_backends_teacherremoteidentity].[remoteidentity_ptr_id] = [remote_backends_remoteidentity].[id])
 WHERE [remote_backends_teacherremoteidentity].[teacher_id] IN (33151)
SELECT ••• FROM [remote_backends_teacherremoteidentity] INNER JOIN [remote_backends_remoteidentity] ON ([remote_backends_teacherremoteidentity].[remoteidentity_ptr_id] = [remote_backends_remoteidentity].[id]) WHERE [remote_backends_teacherremoteidentity].[teacher_id] IN (33151)
0.80

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in process_request(62)
  if hasattr(request, "user") and isinstance(request.user, User):

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in <lambda>(23)
  request.user = SimpleLazyObject(lambda: get_user(request))

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in get_user(11)
  request._cached_user = auth.get_user(request)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/__init__.py in get_user(184)
  user = backend.get_user(user_id)

/app/users/backends.py in get_user(32)
  return user_qs.filter(pk=user_id).first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(350)
  return self._no_monkey.first(self._clone().cache())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [users_user].[id],
       [users_user].[password],
       [users_user].[last_login],
       [users_user].[is_superuser],
       [users_user].[username],
       [users_user].[first_name],
       [users_user].[last_name],
       [users_user].[email],
       [users_user].[is_staff],
       [users_user].[is_active],
       [users_user].[date_joined],
       [users_user].[language],
       [users_user].[has_logged_in],
       [users_user].[email_verified],
       [users_user].[email_verified_time],
       [users_user].[show_tutorial],
       [users_user].[last_active_class_id],
       [users_user].[previous_login],
       [users_user].[timezone],
       [users_user].[created_by_id],
       [users_user].[is_coworker],
       [users_user].[receives_newsletter],
       [users_parent].[user_id]
  FROM [users_parent]
 INNER JOIN [users_user]
    ON ([users_parent].[user_id] = [users_user].[id])
 WHERE [users_parent].[user_id] IN (33151)
SELECT ••• FROM [users_parent] INNER JOIN [users_user] ON ([users_parent].[user_id] = [users_user].[id]) WHERE [users_parent].[user_id] IN (33151)
0.75

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in process_request(62)
  if hasattr(request, "user") and isinstance(request.user, User):

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in <lambda>(23)
  request.user = SimpleLazyObject(lambda: get_user(request))

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in get_user(11)
  request._cached_user = auth.get_user(request)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/__init__.py in get_user(184)
  user = backend.get_user(user_id)

/app/users/backends.py in get_user(32)
  return user_qs.filter(pk=user_id).first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(350)
  return self._no_monkey.first(self._clone().cache())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [schools_schoolclass].[id],
       [schools_schoolclass].[created],
       [schools_schoolclass].[updated],
       [schools_schoolclass].[created_by_id],
       [schools_schoolclass].[name],
       [schools_schoolclass].[grade],
       [schools_schoolclass].[is_active],
       [schools_schoolclass].[comments],
       [schools_schoolclass].[is_test],
       [schools_schoolclass].[language],
       [schools_schoolclass].[school_id],
       [schools_schoolclass].[creation_method],
       [schools_school].[id],
       [schools_school].[created],
       [schools_school].[updated],
       [schools_school].[created_by_id],
       [schools_school].[name],
       [schools_school].[language],
       [schools_school].[address],
       [schools_school].[zipcode],
       [schools_school].[city],
       [schools_school].[municipality],
       [schools_school].[curriculum_id],
       [schools_school].[country],
       [schools_school].[is_active],
       [schools_school].[comments],
       [schools_school].[skolon_organization_id],
       [schools_school].[creation_method]
  FROM [schools_schoolclass]
 INNER JOIN [schools_school]
    ON ([schools_schoolclass].[school_id] = [schools_school].[id])
 WHERE [schools_schoolclass].[id] IN (1757)
 ORDER BY [schools_schoolclass].[name] ASC
OFFSET 0 ROWS
SELECT ••• FROM [schools_schoolclass] INNER JOIN [schools_school] ON ([schools_schoolclass].[school_id] = [schools_school].[id]) WHERE [schools_schoolclass].[id] IN (1757) ORDER BY [schools_schoolclass].[name] ASC OFFSET 0 ROWS
1.55

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in process_request(62)
  if hasattr(request, "user") and isinstance(request.user, User):

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in <lambda>(23)
  request.user = SimpleLazyObject(lambda: get_user(request))

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/middleware.py in get_user(11)
  request._cached_user = auth.get_user(request)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/__init__.py in get_user(184)
  user = backend.get_user(user_id)

/app/users/backends.py in get_user(32)
  return user_qs.filter(pk=user_id).first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(350)
  return self._no_monkey.first(self._clone().cache())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT TOP 1 [edulms_settings].[id],
       [edulms_settings].[name],
       [edulms_settings].[is_active],
       [edulms_settings].[freebuilding_area_id],
       [edulms_settings].[default_curriculum_id],
       [edulms_settings].[manager_emails],
       [edulms_settings].[alerts_reply_to_email],
       [edulms_settings].[reports_reply_to_email],
       [game_area].[id],
       [game_area].[created],
       [game_area].[updated],
       [game_area].[created_by_id],
       [game_area].[name],
       [game_area].[name_en],
       [game_area].[name_sv],
       [game_area].[name_fr],
       [game_area].[description],
       [game_area].[description_en],
       [game_area].[description_sv],
       [game_area].[description_fr],
       [game_area].[exercise_room_id],
       [game_area].[name_in_game],
       [game_area].[name_in_game_en],
       [game_area].[name_in_game_sv],
       [game_area].[name_in_game_fr],
       [game_area].[short_description],
       [game_area].[short_description_en],
       [game_area].[short_description_sv],
       [game_area].[short_description_fr],
       [game_area].[slug],
       [game_area].[is_published],
       [game_area].[is_unlocked_by_default],
       [game_area].[order],
       [game_exerciseroom].[id],
       [game_exerciseroom].[created],
       [game_exerciseroom].[updated],
       [game_exerciseroom].[created_by_id],
       [game_exerciseroom].[name],
       [game_exerciseroom].[name_en],
       [game_exerciseroom].[name_sv],
       [game_exerciseroom].[name_fr],
       [game_exerciseroom].[description],
       [game_exerciseroom].[description_en],
       [game_exerciseroom].[description_sv],
       [game_exerciseroom].[description_fr],
       [game_exerciseroom].[is_published],
       [game_exerciseroom].[slug],
       [education_curriculum].[id],
       [education_curriculum].[name],
       [education_curriculum].[name_en],
       [education_curriculum].[name_sv],
       [education_curriculum].[name_fr]
  FROM [edulms_settings]
  LEFT OUTER JOIN [game_area]
    ON ([edulms_settings].[freebuilding_area_id] = [game_area].[id])
  LEFT OUTER JOIN [game_exerciseroom]
    ON ([game_area].[exercise_room_id] = [game_exerciseroom].[id])
  LEFT OUTER JOIN [education_curriculum]
    ON ([edulms_settings].[default_curriculum_id] = [education_curriculum].[id])
 WHERE [edulms_settings].[is_active] = True
 ORDER BY [edulms_settings].[id] ASC
SELECT ••• FROM [edulms_settings] LEFT OUTER JOIN [game_area] ON ([edulms_settings].[freebuilding_area_id] = [game_area].[id]) LEFT OUTER JOIN [game_exerciseroom] ON ([game_area].[exercise_room_id] = [game_exerciseroom].[id]) LEFT OUTER JOIN [education_curriculum] ON ([edulms_settings].[default_curriculum_id] = [education_curriculum].[id]) WHERE [edulms_settings].[is_active] = True ORDER BY [edulms_settings].[id] ASC
1.02

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/schools/mixins.py in __init__(220)
  self.active_settings = Settings.get_active()

/app/edulms/models.py in get_active(155)
  return inner()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in wrapper(109)
  result = func(*args, **kwargs)

/app/edulms/models.py in inner(149)
  .first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(351)
  return self._no_monkey.first(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT [edulms_licenseprice].[id],
       [edulms_licenseprice].[created],
       [edulms_licenseprice].[updated],
       [edulms_licenseprice].[created_by_id],
       [edulms_licenseprice].[settings_id],
       [edulms_licenseprice].[class_sek],
       [edulms_licenseprice].[class_eur],
       [edulms_licenseprice].[school_sek],
       [edulms_licenseprice].[school_eur],
       [edulms_licenseprice].[start_date],
       [edulms_licenseprice].[end_date]
  FROM [edulms_licenseprice]
 WHERE [edulms_licenseprice].[settings_id] IN (1)
 ORDER BY [edulms_licenseprice].[end_date] DESC,
          [edulms_licenseprice].[start_date] ASC,
          [edulms_licenseprice].[updated] DESC,
          [edulms_licenseprice].[created] DESC
OFFSET 0 ROWS
SELECT ••• FROM [edulms_licenseprice] WHERE [edulms_licenseprice].[settings_id] IN (1) ORDER BY [edulms_licenseprice].[end_date] DESC, [edulms_licenseprice].[start_date] ASC, [edulms_licenseprice].[updated] DESC, [edulms_licenseprice].[created] DESC OFFSET 0 ROWS
1.01

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/schools/mixins.py in __init__(220)
  self.active_settings = Settings.get_active()

/app/edulms/models.py in get_active(155)
  return inner()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in wrapper(109)
  result = func(*args, **kwargs)

/app/edulms/models.py in inner(149)
  .first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(351)
  return self._no_monkey.first(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT [game_area].[name_en],
       [game_area].[id],
       CASE WHEN COUNT_BIG(CASE WHEN ([game_area_disabled_for].[schoolclass_id] = 1757) THEN [game_area_disabled_for].[schoolclass_id] ELSE NULL END) > 0 THEN True
            ELSE False
             END AS [disabled]
  FROM [game_area]
  LEFT OUTER JOIN [game_area_disabled_for]
    ON ([game_area].[id] = [game_area_disabled_for].[area_id])
 WHERE ([game_area].[is_published] = True AND [game_area].[exercise_room_id] IS NULL)
 GROUP BY [game_area].[id],
          [game_area].[created],
          [game_area].[updated],
          [game_area].[created_by_id],
          [game_area].[name],
          [game_area].[name_en],
          [game_area].[name_sv],
          [game_area].[name_fr],
          [game_area].[description],
          [game_area].[description_en],
          [game_area].[description_sv],
          [game_area].[description_fr],
          [game_area].[exercise_room_id],
          [game_area].[name_in_game],
          [game_area].[name_in_game_en],
          [game_area].[name_in_game_sv],
          [game_area].[name_in_game_fr],
          [game_area].[short_description],
          [game_area].[short_description_en],
          [game_area].[short_description_sv],
          [game_area].[short_description_fr],
          [game_area].[slug],
          [game_area].[is_published],
          [game_area].[is_unlocked_by_default],
          [game_area].[order]
 ORDER BY [disabled] ASC
OFFSET 0 ROWS
SELECT ••• FROM [game_area] LEFT OUTER JOIN [game_area_disabled_for] ON ([game_area].[id] = [game_area_disabled_for].[area_id]) WHERE ([game_area].[is_published] = True AND [game_area].[exercise_room_id] IS NULL) GROUP BY [game_area].[id], [game_area].[created], [game_area].[updated], [game_area].[created_by_id], [game_area].[name], [game_area].[name_en], [game_area].[name_sv], [game_area].[name_fr], [game_area].[description], [game_area].[description_en], [game_area].[description_sv], [game_area].[description_fr], [game_area].[exercise_room_id], [game_area].[name_in_game], [game_area].[name_in_game_en], [game_area].[name_in_game_sv], [game_area].[name_in_game_fr], [game_area].[short_description], [game_area].[short_description_en], [game_area].[short_description_sv], [game_area].[short_description_fr], [game_area].[slug], [game_area].[is_published], [game_area].[is_unlocked_by_default], [game_area].[order] ORDER BY [disabled] ASC OFFSET 0 ROWS
10.13

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(657)
  context = super().get_context_data(**kwargs)

/app/edulms/views/mixins.py in get_context_data(43)
  return super().get_context_data(**kwargs)

/app/schools/mixins.py in get_context_data(75)
  return super().get_context_data(active_class=self.school_class, **kwargs)

/app/.venv/lib/python3.11/site-packages/view_breadcrumbs/generic/base.py in get_context_data(71)
  return super(BaseBreadcrumbMixin, self).get_context_data(**kwargs)

/app/help/mixins.py in get_context_data(11)
  context = super().get_context_data(**kwargs)  # type: ignore

/app/edulms/views/mixins.py in get_context_data(113)
  sidebar.update(**self.get_context_data_for_class(self.school_class))

/app/edulms/views/mixins.py in get_context_data_for_class(119)
  game_areas = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT [game_exerciseroom].[name_en],
       [game_exerciseroom].[id],
       CASE WHEN COUNT_BIG(CASE WHEN ([game_exerciseroom_disabled_for].[schoolclass_id] = 1757) THEN [game_exerciseroom_disabled_for].[schoolclass_id] ELSE NULL END) > 0 THEN True
            ELSE False
             END AS [disabled]
  FROM [game_exerciseroom]
  LEFT OUTER JOIN [game_exerciseroom_disabled_for]
    ON ([game_exerciseroom].[id] = [game_exerciseroom_disabled_for].[exerciseroom_id])
 WHERE [game_exerciseroom].[is_published] = True
 GROUP BY [game_exerciseroom].[id],
          [game_exerciseroom].[created],
          [game_exerciseroom].[updated],
          [game_exerciseroom].[created_by_id],
          [game_exerciseroom].[name],
          [game_exerciseroom].[name_en],
          [game_exerciseroom].[name_sv],
          [game_exerciseroom].[name_fr],
          [game_exerciseroom].[description],
          [game_exerciseroom].[description_en],
          [game_exerciseroom].[description_sv],
          [game_exerciseroom].[description_fr],
          [game_exerciseroom].[is_published],
          [game_exerciseroom].[slug]
 ORDER BY [disabled] ASC
OFFSET 0 ROWS
SELECT ••• FROM [game_exerciseroom] LEFT OUTER JOIN [game_exerciseroom_disabled_for] ON ([game_exerciseroom].[id] = [game_exerciseroom_disabled_for].[exerciseroom_id]) WHERE [game_exerciseroom].[is_published] = True GROUP BY [game_exerciseroom].[id], [game_exerciseroom].[created], [game_exerciseroom].[updated], [game_exerciseroom].[created_by_id], [game_exerciseroom].[name], [game_exerciseroom].[name_en], [game_exerciseroom].[name_sv], [game_exerciseroom].[name_fr], [game_exerciseroom].[description], [game_exerciseroom].[description_en], [game_exerciseroom].[description_sv], [game_exerciseroom].[description_fr], [game_exerciseroom].[is_published], [game_exerciseroom].[slug] ORDER BY [disabled] ASC OFFSET 0 ROWS
9.56

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(657)
  context = super().get_context_data(**kwargs)

/app/edulms/views/mixins.py in get_context_data(43)
  return super().get_context_data(**kwargs)

/app/schools/mixins.py in get_context_data(75)
  return super().get_context_data(active_class=self.school_class, **kwargs)

/app/.venv/lib/python3.11/site-packages/view_breadcrumbs/generic/base.py in get_context_data(71)
  return super(BaseBreadcrumbMixin, self).get_context_data(**kwargs)

/app/help/mixins.py in get_context_data(11)
  context = super().get_context_data(**kwargs)  # type: ignore

/app/edulms/views/mixins.py in get_context_data(113)
  sidebar.update(**self.get_context_data_for_class(self.school_class))

/app/edulms/views/mixins.py in get_context_data_for_class(128)
  exercise_rooms = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT [game_exam].[name_en],
       [game_exam].[slug],
       COALESCE((SELECT TOP 1 CASE WHEN (U0.[start_time] > datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END AS [is_future] FROM [plays_schoolclassexam] U0 WHERE (U0.[exam_id] = [game_exam].[id] AND U0.[school_class_id] = 1757) ORDER BY CASE WHEN (U0.[end_time] >= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc) AND U0.[start_time] <= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END DESC, [is_future] DESC), False) AS [is_future],
       COALESCE((SELECT TOP 1 CASE WHEN (U0.[end_time] >= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc) AND U0.[start_time] <= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END AS [is_ongoing] FROM [plays_schoolclassexam] U0 WHERE (U0.[exam_id] = [game_exam].[id] AND U0.[school_class_id] = 1757) ORDER BY [is_ongoing] DESC, CASE WHEN (U0.[start_time] > datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END DESC), False) AS [is_ongoing],
       COALESCE((SELECT TOP 1 CASE WHEN (U0.[end_time] < datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END AS [is_ended] FROM [plays_schoolclassexam] U0 WHERE (U0.[exam_id] = [game_exam].[id] AND U0.[school_class_id] = 1757) ORDER BY CASE WHEN (U0.[end_time] >= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc) AND U0.[start_time] <= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END DESC, CASE WHEN (U0.[start_time] > datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END DESC), False) AS [is_ended]
  FROM [game_exam]
SELECT ••• FROM [plays_schoolclassexam] U0 WHERE (U0.[exam_id] = [game_exam].[id] AND U0.[school_class_id] = 1757) ORDER BY CASE WHEN (U0.[end_time] >= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc) AND U0.[start_time] <= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END DESC, [is_future] DESC), False) AS [is_future], COALESCE((SELECT TOP 1 CASE WHEN (U0.[end_time] >= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc) AND U0.[start_time] <= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END AS [is_ongoing] FROM [plays_schoolclassexam] U0 WHERE (U0.[exam_id] = [game_exam].[id] AND U0.[school_class_id] = 1757) ORDER BY [is_ongoing] DESC, CASE WHEN (U0.[start_time] > datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END DESC), False) AS [is_ongoing], COALESCE((SELECT TOP 1 CASE WHEN (U0.[end_time] < datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END AS [is_ended] FROM [plays_schoolclassexam] U0 WHERE (U0.[exam_id] = [game_exam].[id] AND U0.[school_class_id] = 1757) ORDER BY CASE WHEN (U0.[end_time] >= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc) AND U0.[start_time] <= datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END DESC, CASE WHEN (U0.[start_time] > datetime.datetime(2025, 7, 10, 2, 3, 4, 198349, tzinfo=datetime.timezone.utc)) THEN True ELSE False END DESC), False) AS [is_ended] FROM [game_exam]
0.98

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(657)
  context = super().get_context_data(**kwargs)

/app/edulms/views/mixins.py in get_context_data(43)
  return super().get_context_data(**kwargs)

/app/schools/mixins.py in get_context_data(75)
  return super().get_context_data(active_class=self.school_class, **kwargs)

/app/.venv/lib/python3.11/site-packages/view_breadcrumbs/generic/base.py in get_context_data(71)
  return super(BaseBreadcrumbMixin, self).get_context_data(**kwargs)

/app/help/mixins.py in get_context_data(11)
  context = super().get_context_data(**kwargs)  # type: ignore

/app/edulms/views/mixins.py in get_context_data(113)
  sidebar.update(**self.get_context_data_for_class(self.school_class))

/app/edulms/views/mixins.py in get_context_data_for_class(144)
  "exams": self.get_class_exams(school_class),

/app/edulms/views/mixins.py in get_class_exams(156)
  return list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT TOP 1 [help_pagehelptext].[article_en]
  FROM [help_pagehelptext]
 WHERE [help_pagehelptext].[slug] = 'class-details'
 ORDER BY [help_pagehelptext].[id] ASC
SELECT ••• FROM [help_pagehelptext] WHERE [help_pagehelptext].[slug] = 'class-details' ORDER BY [help_pagehelptext].[id] ASC
0.66

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(657)
  context = super().get_context_data(**kwargs)

/app/edulms/views/mixins.py in get_context_data(43)
  return super().get_context_data(**kwargs)

/app/schools/mixins.py in get_context_data(75)
  return super().get_context_data(active_class=self.school_class, **kwargs)

/app/.venv/lib/python3.11/site-packages/view_breadcrumbs/generic/base.py in get_context_data(71)
  return super(BaseBreadcrumbMixin, self).get_context_data(**kwargs)

/app/help/mixins.py in get_context_data(16)
  .first()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in first(350)
  return self._no_monkey.first(self._clone().cache())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(546)
  for row in super().__iter__():

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(531)
  for row in super().__iter__():

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT [game_exam].[name_en],
       [game_exam].[slug],
       [plays_examresult].[end_time] AS [end_time],
       [plays_examresult].[student_id] AS [student_id],
       [plays_schoolclassexam].[id] AS [instance_id]
  FROM [game_exam]
 INNER JOIN [plays_schoolclassexam]
    ON ([game_exam].[id] = [plays_schoolclassexam].[exam_id])
 INNER JOIN [plays_examresult]
    ON ([plays_schoolclassexam].[id] = [plays_examresult].[exam_instance_id])
 INNER JOIN [users_student]
    ON ([plays_examresult].[student_id] = [users_student].[player_id])
 WHERE ([plays_examresult].[end_time] IS NOT NULL AND [plays_examresult].[is_completed] = True AND [users_student].[is_active] = True AND [plays_schoolclassexam].[school_class_id] = 1757)
 ORDER BY [end_time] DESC
OFFSET 0 ROWS
SELECT ••• FROM [game_exam] INNER JOIN [plays_schoolclassexam] ON ([game_exam].[id] = [plays_schoolclassexam].[exam_id]) INNER JOIN [plays_examresult] ON ([plays_schoolclassexam].[id] = [plays_examresult].[exam_instance_id]) INNER JOIN [users_student] ON ([plays_examresult].[student_id] = [users_student].[player_id]) WHERE ([plays_examresult].[end_time] IS NOT NULL AND [plays_examresult].[is_completed] = True AND [users_student].[is_active] = True AND [plays_schoolclassexam].[school_class_id] = 1757) ORDER BY [end_time] DESC OFFSET 0 ROWS
0.83

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(659)
  students = self.get_students(self.school_class)

/app/schools/views/generic.py in get_students(851)
  exam_results = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT [game_activity].[is_voluntary],
       [game_activity].[offline],
       [game_activity].[name_en],
       [game_activity].[id],
       [game_activity].[area_id]
  FROM [game_activity]
 ORDER BY [game_activity].[order] ASC
OFFSET 0 ROWS
SELECT ••• FROM [game_activity] ORDER BY [game_activity].[order] ASC OFFSET 0 ROWS
2.10

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(659)
  students = self.get_students(self.school_class)

/app/schools/views/generic.py in get_students(871)
  activity_names = {a["pk"]: a["name"] for a in self.get_activity_values() if not a["offline"]}

/app/schools/mixins.py in get_activity_values(247)
  return list(Activity.objects.cache().values("pk", "name", "area_id", "is_voluntary", "offline"))

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT [plays_solution].[player_id],
       [plays_solution].[is_completed],
       [plays_solution].[score],
       [plays_solution].[activity_id],
       [game_activity].[area_id] AS [area_id],
       [game_activity].[slug] AS [activity_slug],
       COALESCE([plays_solution].[end_time], [plays_solution].[start_time]) AS [datetime]
  FROM [plays_solution]
 INNER JOIN [game_activity]
    ON ([plays_solution].[activity_id] = [game_activity].[id])
 INNER JOIN [users_player]
    ON ([plays_solution].[player_id] = [users_player].[id])
 INNER JOIN [users_student]
    ON ([users_player].[id] = [users_student].[player_id])
 WHERE (NOT (([plays_solution].[activity_id] IS NULL OR [plays_solution].[start_time] IS NULL)) AND [game_activity].[offline] = False AND [users_student].[is_active] = True AND [users_student].[school_class_id] = 1757)
 ORDER BY [datetime] DESC
OFFSET 0 ROWS
SELECT ••• FROM [plays_solution] INNER JOIN [game_activity] ON ([plays_solution].[activity_id] = [game_activity].[id]) INNER JOIN [users_player] ON ([plays_solution].[player_id] = [users_player].[id]) INNER JOIN [users_student] ON ([users_player].[id] = [users_student].[player_id]) WHERE (NOT (([plays_solution].[activity_id] IS NULL OR [plays_solution].[start_time] IS NULL)) AND [game_activity].[offline] = False AND [users_student].[is_active] = True AND [users_student].[school_class_id] = 1757) ORDER BY [datetime] DESC OFFSET 0 ROWS
1.63

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(659)
  students = self.get_students(self.school_class)

/app/schools/views/generic.py in get_students(872)
  solutions = [

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [users_student].[first_name],
       [users_student].[player_id],
       (
        SELECT TOP 1 U0.[token]
          FROM [users_playertoken] U0
         WHERE (U0.[expiry] IS NULL AND U0.[player_id] = [users_student].[player_id])
         ORDER BY U0.[is_temporary] DESC,
                  CASE WHEN U0.[expiry] IS NULL THEN 0
                       ELSE 1
                        END,
                  U0.[expiry] DESC,
                  U0.[created] DESC
       ) AS [last_valid_token],
       LTRIM(RTRIM(CONCAT([users_student].[first_name], CONCAT(' ', [users_student].[last_name])))) AS [name],
       (
        SELECT TOP 1 U0.[created]
          FROM [plays_voxeldata] U0
         INNER JOIN [users_player] U2
            ON (U0.[player_id] = U2.[id])
         INNER JOIN [users_student] U3
            ON (U2.[id] = U3.[player_id])
         WHERE (U0.[activity_id] IS NULL AND U3.[player_id] = [users_student].[player_id] AND NOT (U0.[thumbnail] = '' AND U0.[thumbnail] IS NOT NULL))
         ORDER BY U0.[created] DESC
       ) AS [latest_freebuilding_time],
       (
        SELECT TOP 1 U0.[id]
          FROM [plays_voxeldata] U0
         INNER JOIN [users_player] U2
            ON (U0.[player_id] = U2.[id])
         INNER JOIN [users_student] U3
            ON (U2.[id] = U3.[player_id])
         WHERE (U0.[activity_id] IS NULL AND U3.[player_id] = [users_student].[player_id] AND NOT (U0.[thumbnail] = '' AND U0.[thumbnail] IS NOT NULL))
         ORDER BY U0.[created] DESC
       ) AS [latest_freebuilding_id],
       (
        SELECT TOP 1 U0.[created]
          FROM [plays_physicsbuild] U0
         INNER JOIN [users_player] U1
            ON (U0.[player_id] = U1.[id])
         INNER JOIN [users_student] U2
            ON (U1.[id] = U2.[player_id])
         WHERE (U2.[player_id] = [users_student].[player_id] AND NOT (U0.[thumbnail] = '' AND U0.[thumbnail] IS NOT NULL))
         ORDER BY U0.[created] DESC
       ) AS [latest_physicsbuild_time],
       (
        SELECT TOP 1 U0.[id]
          FROM [plays_physicsbuild] U0
         INNER JOIN [users_player] U1
            ON (U0.[player_id] = U1.[id])
         INNER JOIN [users_student] U2
            ON (U1.[id] = U2.[player_id])
         WHERE (U2.[player_id] = [users_student].[player_id] AND NOT (U0.[thumbnail] = '' AND U0.[thumbnail] IS NOT NULL))
         ORDER BY U0.[created] DESC
       ) AS [latest_physicsbuild_id]
  FROM [users_student]
 WHERE ([users_student].[is_active] = True AND [users_student].[school_class_id] = 1757)
 ORDER BY [users_student].[last_name] ASC,
          [users_student].[first_name] ASC
OFFSET 0 ROWS
SELECT ••• FROM [users_playertoken] U0 WHERE (U0.[expiry] IS NULL AND U0.[player_id] = [users_student].[player_id]) ORDER BY U0.[is_temporary] DESC, CASE WHEN U0.[expiry] IS NULL THEN 0 ELSE 1 END, U0.[expiry] DESC, U0.[created] DESC) AS [last_valid_token], LTRIM(RTRIM(CONCAT([users_student].[first_name], CONCAT(' ', [users_student].[last_name])))) AS [name], (SELECT TOP 1 U0.[created] FROM [plays_voxeldata] U0 INNER JOIN [users_player] U2 ON (U0.[player_id] = U2.[id]) INNER JOIN [users_student] U3 ON (U2.[id] = U3.[player_id]) WHERE (U0.[activity_id] IS NULL AND U3.[player_id] = [users_student].[player_id] AND NOT (U0.[thumbnail] = '' AND U0.[thumbnail] IS NOT NULL)) ORDER BY U0.[created] DESC) AS [latest_freebuilding_time], (SELECT TOP 1 U0.[id] FROM [plays_voxeldata] U0 INNER JOIN [users_player] U2 ON (U0.[player_id] = U2.[id]) INNER JOIN [users_student] U3 ON (U2.[id] = U3.[player_id]) WHERE (U0.[activity_id] IS NULL AND U3.[player_id] = [users_student].[player_id] AND NOT (U0.[thumbnail] = '' AND U0.[thumbnail] IS NOT NULL)) ORDER BY U0.[created] DESC) AS [latest_freebuilding_id], (SELECT TOP 1 U0.[created] FROM [plays_physicsbuild] U0 INNER JOIN [users_player] U1 ON (U0.[player_id] = U1.[id]) INNER JOIN [users_student] U2 ON (U1.[id] = U2.[player_id]) WHERE (U2.[player_id] = [users_student].[player_id] AND NOT (U0.[thumbnail] = '' AND U0.[thumbnail] IS NOT NULL)) ORDER BY U0.[created] DESC) AS [latest_physicsbuild_time], (SELECT TOP 1 U0.[id] FROM [plays_physicsbuild] U0 INNER JOIN [users_player] U1 ON (U0.[player_id] = U1.[id]) INNER JOIN [users_student] U2 ON (U1.[id] = U2.[player_id]) WHERE (U2.[player_id] = [users_student].[player_id] AND NOT (U0.[thumbnail] = '' AND U0.[thumbnail] IS NOT NULL)) ORDER BY U0.[created] DESC) AS [latest_physicsbuild_id] FROM [users_student] WHERE ([users_student].[is_active] = True AND [users_student].[school_class_id] = 1757) ORDER BY [users_student].[last_name] ASC, [users_student].[first_name] ASC OFFSET 0 ROWS
2.92

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(659)
  students = self.get_students(self.school_class)

/app/schools/views/generic.py in get_students(890)
  students = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT DISTINCT [game_activity].[area_id] AS [area_id],
       [users_student].[school_class_id] AS [school_class_id],
       COUNT_BIG(DISTINCT CONCAT([plays_solution].[activity_id], CONCAT('-', [plays_solution].[player_id]))) AS [total],
       COUNT_BIG(DISTINCT CASE WHEN CAST(DATEADD(second, 3600, [plays_solution].[start_time]) AS date) >= '2025-07-03' THEN CONCAT([plays_solution].[activity_id], CONCAT('-', [plays_solution].[player_id])) ELSE NULL END) AS [recent]
  FROM [plays_solution]
 INNER JOIN [game_activity]
    ON ([plays_solution].[activity_id] = [game_activity].[id])
 INNER JOIN [users_player]
    ON ([plays_solution].[player_id] = [users_player].[id])
 INNER JOIN [users_student]
    ON ([users_player].[id] = [users_student].[player_id])
 WHERE ([game_activity].[is_voluntary] = False AND [game_activity].[offline] = False AND [plays_solution].[is_completed] = True AND [users_student].[is_active] = True AND CAST(DATEADD(second, 3600, [plays_solution].[start_time]) AS date) <= '2025-07-10' AND [users_student].[school_class_id] = 1757)
 GROUP BY [game_activity].[area_id],
          [users_student].[school_class_id]
SELECT ••• FROM [plays_solution] INNER JOIN [game_activity] ON ([plays_solution].[activity_id] = [game_activity].[id]) INNER JOIN [users_player] ON ([plays_solution].[player_id] = [users_player].[id]) INNER JOIN [users_student] ON ([users_player].[id] = [users_student].[player_id]) WHERE ([game_activity].[is_voluntary] = False AND [game_activity].[offline] = False AND [plays_solution].[is_completed] = True AND [users_student].[is_active] = True AND CAST(DATEADD(second, 3600, [plays_solution].[start_time]) AS date) <= '2025-07-10' AND [users_student].[school_class_id] = 1757) GROUP BY [game_activity].[area_id], [users_student].[school_class_id]
34.62

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(660)
  areas = self.get_class_areas(self.school_class)

/app/schools/views/generic.py in get_class_areas(615)
  solutions = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [game_exerciseroom].[name_en],
       [game_exerciseroom].[id]
  FROM [game_exerciseroom]
SELECT ••• FROM [game_exerciseroom]
0.81

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(660)
  areas = self.get_class_areas(self.school_class)

/app/schools/views/generic.py in get_class_areas(627)
  areas = self.annotate_areas(area_qs)

/app/schools/mixins.py in annotate_areas(225)
  room_names = {t["pk"]: t["name"] for t in ExerciseRoom.objects.cache().values("pk", "name")}

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT [game_area].[name_en],
       [game_area].[description_en],
       [game_area].[id],
       [game_area].[exercise_room_id],
       CASE WHEN COUNT_BIG(CASE WHEN ([game_area_disabled_for].[schoolclass_id] = 1757) THEN [game_area_disabled_for].[schoolclass_id] ELSE NULL END) > 0 THEN True
            ELSE False
             END AS [disabled]
  FROM [game_area]
  LEFT OUTER JOIN [game_area_disabled_for]
    ON ([game_area].[id] = [game_area_disabled_for].[area_id])
 WHERE [game_area].[is_published] = True
 GROUP BY [game_area].[id],
          [game_area].[created],
          [game_area].[updated],
          [game_area].[created_by_id],
          [game_area].[name],
          [game_area].[name_en],
          [game_area].[name_sv],
          [game_area].[name_fr],
          [game_area].[description],
          [game_area].[description_en],
          [game_area].[description_sv],
          [game_area].[description_fr],
          [game_area].[exercise_room_id],
          [game_area].[name_in_game],
          [game_area].[name_in_game_en],
          [game_area].[name_in_game_sv],
          [game_area].[name_in_game_fr],
          [game_area].[short_description],
          [game_area].[short_description_en],
          [game_area].[short_description_sv],
          [game_area].[short_description_fr],
          [game_area].[slug],
          [game_area].[is_published],
          [game_area].[is_unlocked_by_default],
          [game_area].[order]
 ORDER BY [game_area].[order] ASC
OFFSET 0 ROWS
SELECT ••• FROM [game_area] LEFT OUTER JOIN [game_area_disabled_for] ON ([game_area].[id] = [game_area_disabled_for].[area_id]) WHERE [game_area].[is_published] = True GROUP BY [game_area].[id], [game_area].[created], [game_area].[updated], [game_area].[created_by_id], [game_area].[name], [game_area].[name_en], [game_area].[name_sv], [game_area].[name_fr], [game_area].[description], [game_area].[description_en], [game_area].[description_sv], [game_area].[description_fr], [game_area].[exercise_room_id], [game_area].[name_in_game], [game_area].[name_in_game_en], [game_area].[name_in_game_sv], [game_area].[name_in_game_fr], [game_area].[short_description], [game_area].[short_description_en], [game_area].[short_description_sv], [game_area].[short_description_fr], [game_area].[slug], [game_area].[is_published], [game_area].[is_unlocked_by_default], [game_area].[order] ORDER BY [game_area].[order] ASC OFFSET 0 ROWS
70.42

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(660)
  areas = self.get_class_areas(self.school_class)

/app/schools/views/generic.py in get_class_areas(627)
  areas = self.annotate_areas(area_qs)

/app/schools/mixins.py in annotate_areas(228)
  for area in area_qs:

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT DISTINCT [schools_schoolclass].[id],
       [schools_schoolclass].[created],
       [schools_schoolclass].[updated],
       [schools_schoolclass].[created_by_id],
       [schools_schoolclass].[name],
       [schools_schoolclass].[grade],
       [schools_schoolclass].[is_active],
       [schools_schoolclass].[comments],
       [schools_schoolclass].[is_test],
       [schools_schoolclass].[language],
       [schools_schoolclass].[school_id],
       [schools_schoolclass].[creation_method],
       [schools_school].[id],
       [schools_school].[created],
       [schools_school].[updated],
       [schools_school].[created_by_id],
       [schools_school].[name],
       [schools_school].[language],
       [schools_school].[address],
       [schools_school].[zipcode],
       [schools_school].[city],
       [schools_school].[municipality],
       [schools_school].[curriculum_id],
       [schools_school].[country],
       [schools_school].[is_active],
       [schools_school].[comments],
       [schools_school].[skolon_organization_id],
       [schools_school].[creation_method]
  FROM [schools_schoolclass]
  LEFT OUTER JOIN [users_teacher_school_classes]
    ON ([schools_schoolclass].[id] = [users_teacher_school_classes].[schoolclass_id])
 INNER JOIN [schools_school]
    ON ([schools_schoolclass].[school_id] = [schools_school].[id])
  LEFT OUTER JOIN [schools_school_admins]
    ON ([schools_school].[id] = [schools_school_admins].[school_id])
 WHERE (([users_teacher_school_classes].[teacher_id] = 33151 OR [schools_school_admins].[user_id] = 33151) AND [schools_schoolclass].[is_active] = True AND NOT ([schools_schoolclass].[id] = 1757))
 ORDER BY [schools_school].[name] ASC,
          [schools_schoolclass].[name] ASC
OFFSET 0 ROWS
SELECT ••• FROM [schools_schoolclass] LEFT OUTER JOIN [users_teacher_school_classes] ON ([schools_schoolclass].[id] = [users_teacher_school_classes].[schoolclass_id]) INNER JOIN [schools_school] ON ([schools_schoolclass].[school_id] = [schools_school].[id]) LEFT OUTER JOIN [schools_school_admins] ON ([schools_school].[id] = [schools_school_admins].[school_id]) WHERE (([users_teacher_school_classes].[teacher_id] = 33151 OR [schools_school_admins].[user_id] = 33151) AND [schools_schoolclass].[is_active] = True AND NOT ([schools_schoolclass].[id] = 1757)) ORDER BY [schools_school].[name] ASC, [schools_schoolclass].[name] ASC OFFSET 0 ROWS
1.48

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(674)
  new_class_form=forms.SchoolClassSelectionForm(

/app/schools/forms.py in __init__(89)
  class_choices = [

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [game_exam].[name_en],
       [game_exam].[slug],
       [plays_schoolclassexam].[id] AS [instance_id],
       [plays_schoolclassexam].[end_time] AS [end_time],
       [plays_schoolclassexam].[school_class_id] AS [school_class_id],
       (3 - COUNT_BIG(DISTINCT CASE WHEN ([users_student].[is_active] = True AND [users_student].[school_class_id] = 1757) THEN [plays_schoolclassexam_excluded_students].[student_id] ELSE NULL END)) AS [student_count],
       COUNT_BIG(DISTINCT CASE WHEN ([plays_examresult].[is_completed] = True AND T8.[is_active] = True AND T8.[school_class_id] = 1757) THEN [plays_examresult].[student_id] ELSE NULL END) AS [completed_count]
  FROM [game_exam]
  LEFT OUTER JOIN [plays_schoolclassexam]
    ON ([game_exam].[id] = [plays_schoolclassexam].[exam_id])
  LEFT OUTER JOIN [plays_schoolclassexam_excluded_students]
    ON ([plays_schoolclassexam].[id] = [plays_schoolclassexam_excluded_students].[schoolclassexam_id])
  LEFT OUTER JOIN [users_student]
    ON ([plays_schoolclassexam_excluded_students].[student_id] = [users_student].[player_id])
  LEFT OUTER JOIN [plays_examresult]
    ON ([plays_schoolclassexam].[id] = [plays_examresult].[exam_instance_id])
  LEFT OUTER JOIN [users_student] T8
    ON ([plays_examresult].[student_id] = T8.[player_id])
 WHERE ([plays_schoolclassexam].[school_class_id] = 1757 AND NOT (CASE WHEN EXISTS(SELECT TOP 1 (1) AS [a] FROM [game_exam] U0 LEFT OUTER JOIN [plays_schoolclassexam] U1 ON (U0.[id] = U1.[exam_id]) WHERE (U1.[id] IS NULL AND U0.[id] = [game_exam].[id])) THEN True ELSE False END = True))
 GROUP BY [game_exam].[name_en],
          [game_exam].[slug],
          [plays_schoolclassexam].[id],
          [plays_schoolclassexam].[end_time],
          [plays_schoolclassexam].[school_class_id]
 ORDER BY [end_time] DESC
OFFSET 0 ROWS
SELECT ••• FROM [game_exam] LEFT OUTER JOIN [plays_schoolclassexam] ON ([game_exam].[id] = [plays_schoolclassexam].[exam_id]) LEFT OUTER JOIN [plays_schoolclassexam_excluded_students] ON ([plays_schoolclassexam].[id] = [plays_schoolclassexam_excluded_students].[schoolclassexam_id]) LEFT OUTER JOIN [users_student] ON ([plays_schoolclassexam_excluded_students].[student_id] = [users_student].[player_id]) LEFT OUTER JOIN [plays_examresult] ON ([plays_schoolclassexam].[id] = [plays_examresult].[exam_instance_id]) LEFT OUTER JOIN [users_student] T8 ON ([plays_examresult].[student_id] = T8.[player_id]) WHERE ([plays_schoolclassexam].[school_class_id] = 1757 AND NOT (CASE WHEN EXISTS(SELECT TOP 1 (1) AS [a] FROM [game_exam] U0 LEFT OUTER JOIN [plays_schoolclassexam] U1 ON (U0.[id] = U1.[exam_id]) WHERE (U1.[id] IS NULL AND U0.[id] = [game_exam].[id])) THEN True ELSE False END = True)) GROUP BY [game_exam].[name_en], [game_exam].[slug], [plays_schoolclassexam].[id], [plays_schoolclassexam].[end_time], [plays_schoolclassexam].[school_class_id] ORDER BY [end_time] DESC OFFSET 0 ROWS
422.08

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(679)
  finished_exams=self.get_finished_exams(self.school_class),

/app/schools/views/generic.py in get_finished_exams(714)
  for exam in self.get_exam_instances(school_class):

/app/schools/mixins.py in get_exam_instances(288)
  exams = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT [game_exerciseroom].[name_en],
       [game_exerciseroom].[id],
       COALESCE((SELECT COUNT_BIG(U0.[id]) AS [aggregation] FROM [plays_solution] U0 INNER JOIN [game_activity] U1 ON (U0.[activity_id] = U1.[id]) INNER JOIN [users_player] U2 ON (U0.[player_id] = U2.[id]) INNER JOIN [users_student] U3 ON (U2.[id] = U3.[player_id]) INNER JOIN [game_area] U5 ON (U1.[area_id] = U5.[id]) WHERE (U1.[offline] = False AND U0.[is_completed] = True AND U3.[is_active] = True AND U3.[school_class_id] = 1757 AND U5.[exercise_room_id] = [game_exerciseroom].[id]) GROUP BY U5.[exercise_room_id]), 0) AS [finished_activity_count]
  FROM [game_exerciseroom]
  LEFT OUTER JOIN [game_exerciseroom_disabled_for]
    ON ([game_exerciseroom].[id] = [game_exerciseroom_disabled_for].[exerciseroom_id])
 WHERE [game_exerciseroom].[is_published] = True
 GROUP BY [game_exerciseroom].[id],
          [game_exerciseroom].[created],
          [game_exerciseroom].[updated],
          [game_exerciseroom].[created_by_id],
          [game_exerciseroom].[name],
          [game_exerciseroom].[name_en],
          [game_exerciseroom].[name_sv],
          [game_exerciseroom].[name_fr],
          [game_exerciseroom].[description],
          [game_exerciseroom].[description_en],
          [game_exerciseroom].[description_sv],
          [game_exerciseroom].[description_fr],
          [game_exerciseroom].[is_published],
          [game_exerciseroom].[slug]
SELECT ••• FROM [plays_solution] U0 INNER JOIN [game_activity] U1 ON (U0.[activity_id] = U1.[id]) INNER JOIN [users_player] U2 ON (U0.[player_id] = U2.[id]) INNER JOIN [users_student] U3 ON (U2.[id] = U3.[player_id]) INNER JOIN [game_area] U5 ON (U1.[area_id] = U5.[id]) WHERE (U1.[offline] = False AND U0.[is_completed] = True AND U3.[is_active] = True AND U3.[school_class_id] = 1757 AND U5.[exercise_room_id] = [game_exerciseroom].[id]) GROUP BY U5.[exercise_room_id]), 0) AS [finished_activity_count] FROM [game_exerciseroom] LEFT OUTER JOIN [game_exerciseroom_disabled_for] ON ([game_exerciseroom].[id] = [game_exerciseroom_disabled_for].[exerciseroom_id]) WHERE [game_exerciseroom].[is_published] = True GROUP BY [game_exerciseroom].[id], [game_exerciseroom].[created], [game_exerciseroom].[updated], [game_exerciseroom].[created_by_id], [game_exerciseroom].[name], [game_exerciseroom].[name_en], [game_exerciseroom].[name_sv], [game_exerciseroom].[name_fr], [game_exerciseroom].[description], [game_exerciseroom].[description_en], [game_exerciseroom].[description_sv], [game_exerciseroom].[description_fr], [game_exerciseroom].[is_published], [game_exerciseroom].[slug]
470.90

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(683)
  active_exercise_rooms=self.get_active_exercise_rooms(self.school_class),

/app/schools/views/generic.py in get_active_exercise_rooms(456)
  return [

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/modeltranslation/manager.py in __iter__(521)
  for row in super().__iter__():

SELECT [plays_voxeldata].[created],
       [plays_voxeldata].[thumbnail],
       [plays_voxeldata].[id],
       [plays_voxeldata].[player_id],
       [plays_voxeldata].[miniature],
       [plays_voxeldata].[name],
       CASE WHEN [users_student].[player_id] > 0 THEN LTRIM(RTRIM(CONCAT([users_student].[first_name], CONCAT(' ', [users_student].[last_name]))))
            WHEN [users_teacher].[user_id] > 0   THEN LTRIM(RTRIM(CONCAT([users_user].[first_name], CONCAT(' ', [users_user].[last_name]))))
            WHEN [users_consumer].[user_id] > 0  THEN LTRIM(RTRIM(CONCAT(T9.[first_name], CONCAT(' ', T9.[last_name]))))
            ELSE ''
             END AS [player_name]
  FROM [plays_voxeldata]
 INNER JOIN [users_player]
    ON ([plays_voxeldata].[player_id] = [users_player].[id])
 INNER JOIN [users_student]
    ON ([users_player].[id] = [users_student].[player_id])
  LEFT OUTER JOIN [users_teacher]
    ON ([users_player].[id] = [users_teacher].[player_id])
  LEFT OUTER JOIN [users_user]
    ON ([users_teacher].[user_id] = [users_user].[id])
  LEFT OUTER JOIN [users_consumer]
    ON ([users_player].[id] = [users_consumer].[player_id])
  LEFT OUTER JOIN [users_user] T9
    ON ([users_consumer].[user_id] = T9.[id])
 WHERE ([plays_voxeldata].[activity_id] IS NULL AND NOT ([plays_voxeldata].[thumbnail] = '' AND [plays_voxeldata].[thumbnail] IS NOT NULL) AND [users_student].[is_active] = True AND [users_student].[school_class_id] = 1757 AND NOT (([plays_voxeldata].[miniature] IS NULL OR ([plays_voxeldata].[miniature] = '' AND [plays_voxeldata].[miniature] IS NOT NULL))))
 ORDER BY [plays_voxeldata].[created] DESC
OFFSET 0 ROWS
SELECT ••• FROM [plays_voxeldata] INNER JOIN [users_player] ON ([plays_voxeldata].[player_id] = [users_player].[id]) INNER JOIN [users_student] ON ([users_player].[id] = [users_student].[player_id]) LEFT OUTER JOIN [users_teacher] ON ([users_player].[id] = [users_teacher].[player_id]) LEFT OUTER JOIN [users_user] ON ([users_teacher].[user_id] = [users_user].[id]) LEFT OUTER JOIN [users_consumer] ON ([users_player].[id] = [users_consumer].[player_id]) LEFT OUTER JOIN [users_user] T9 ON ([users_consumer].[user_id] = T9.[id]) WHERE ([plays_voxeldata].[activity_id] IS NULL AND NOT ([plays_voxeldata].[thumbnail] = '' AND [plays_voxeldata].[thumbnail] IS NOT NULL) AND [users_student].[is_active] = True AND [users_student].[school_class_id] = 1757 AND NOT (([plays_voxeldata].[miniature] IS NULL OR ([plays_voxeldata].[miniature] = '' AND [plays_voxeldata].[miniature] IS NOT NULL)))) ORDER BY [plays_voxeldata].[created] DESC OFFSET 0 ROWS
1.06

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(687)
  freebuildings=self.get_freebuildings(self.school_class),

/app/schools/views/generic.py in get_freebuildings(734)
  return [

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [plays_physicsbuild].[completion_count],
       [plays_physicsbuild].[is_published],
       [plays_physicsbuild].[is_puzzle],
       [plays_physicsbuild].[name],
       [plays_physicsbuild].[id],
       [plays_physicsbuild].[play_count],
       [plays_physicsbuild].[thumbnail],
       [plays_physicsbuild].[updated],
       CASE WHEN [users_student].[player_id] > 0 THEN LTRIM(RTRIM(CONCAT([users_student].[first_name], CONCAT(' ', [users_student].[last_name]))))
            WHEN [users_teacher].[user_id] > 0   THEN LTRIM(RTRIM(CONCAT([users_user].[first_name], CONCAT(' ', [users_user].[last_name]))))
            WHEN [users_consumer].[user_id] > 0  THEN LTRIM(RTRIM(CONCAT(T8.[first_name], CONCAT(' ', T8.[last_name]))))
            ELSE ''
             END AS [player_name]
  FROM [plays_physicsbuild]
 INNER JOIN [users_player]
    ON ([plays_physicsbuild].[player_id] = [users_player].[id])
 INNER JOIN [users_student]
    ON ([users_player].[id] = [users_student].[player_id])
  LEFT OUTER JOIN [users_teacher]
    ON ([users_player].[id] = [users_teacher].[player_id])
  LEFT OUTER JOIN [users_user]
    ON ([users_teacher].[user_id] = [users_user].[id])
  LEFT OUTER JOIN [users_consumer]
    ON ([users_player].[id] = [users_consumer].[player_id])
  LEFT OUTER JOIN [users_user] T8
    ON ([users_consumer].[user_id] = T8.[id])
 WHERE ([users_student].[is_active] = True AND [users_student].[school_class_id] = 1757 AND NOT ([plays_physicsbuild].[thumbnail] = '' AND [plays_physicsbuild].[thumbnail] IS NOT NULL))
 ORDER BY [plays_physicsbuild].[updated] DESC
OFFSET 0 ROWS
SELECT ••• FROM [plays_physicsbuild] INNER JOIN [users_player] ON ([plays_physicsbuild].[player_id] = [users_player].[id]) INNER JOIN [users_student] ON ([users_player].[id] = [users_student].[player_id]) LEFT OUTER JOIN [users_teacher] ON ([users_player].[id] = [users_teacher].[player_id]) LEFT OUTER JOIN [users_user] ON ([users_teacher].[user_id] = [users_user].[id]) LEFT OUTER JOIN [users_consumer] ON ([users_player].[id] = [users_consumer].[player_id]) LEFT OUTER JOIN [users_user] T8 ON ([users_consumer].[user_id] = T8.[id]) WHERE ([users_student].[is_active] = True AND [users_student].[school_class_id] = 1757 AND NOT ([plays_physicsbuild].[thumbnail] = '' AND [plays_physicsbuild].[thumbnail] IS NOT NULL)) ORDER BY [plays_physicsbuild].[updated] DESC OFFSET 0 ROWS
0.83

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(688)
  physics_builds=PhysicsBuild.get_dicts_for_class(self.school_class),

/app/plays/models.py in get_dicts_for_class(372)
  return [

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [licenses_license].[id],
       [licenses_license].[polymorphic_ctype_id],
       [licenses_license].[created],
       [licenses_license].[updated],
       [licenses_license].[created_by_id],
       [licenses_license].[is_trial],
       [licenses_license].[start_date],
       [licenses_license].[end_date],
       [licenses_license].[number_of_users],
       [licenses_license].[customer_id],
       ((((COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [schools_school] U2 ON (U1.[school_id] = U2.[id]) INNER JOIN [licenses_eduinstlicense_schools] U3 ON (U2.[id] = U3.[school_id]) WHERE (U0.[is_active] = True AND U3.[eduinstlicense_id] = [licenses_eduinstlicense].[license_ptr_id]) GROUP BY U3.[eduinstlicense_id]), 0) + COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [schools_school] U2 ON (U1.[school_id] = U2.[id]) INNER JOIN [licenses_schoollicense] U3 ON (U2.[id] = U3.[school_id]) WHERE (U0.[is_active] = True AND U3.[license_ptr_id] = [licenses_schoollicense].[license_ptr_id]) GROUP BY U3.[license_ptr_id]), 0)) + COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [licenses_classlicense] U2 ON (U1.[id] = U2.[school_class_id]) WHERE (U0.[is_active] = True AND U2.[license_ptr_id] = [licenses_classlicense].[license_ptr_id]) GROUP BY U2.[license_ptr_id]), 0)) + COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [azure_azureclasslicense] U2 ON (U1.[id] = U2.[school_class_id]) WHERE (U0.[is_active] = True AND U2.[license_ptr_id] = [azure_azureclasslicense].[license_ptr_id]) GROUP BY U2.[license_ptr_id]), 0)) + COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [schools_school] U2 ON (U1.[school_id] = U2.[id]) INNER JOIN [azure_azureschoollicense] U3 ON (U2.[id] = U3.[school_id]) WHERE (U0.[is_active] = True AND U3.[license_ptr_id] = [azure_azureschoollicense].[license_ptr_id]) GROUP BY U3.[license_ptr_id]), 0)) AS [active_users]
  FROM [licenses_license]
  LEFT OUTER JOIN [licenses_classlicense]
    ON ([licenses_license].[id] = [licenses_classlicense].[license_ptr_id])
  LEFT OUTER JOIN [licenses_schoollicense]
    ON ([licenses_license].[id] = [licenses_schoollicense].[license_ptr_id])
  LEFT OUTER JOIN [licenses_eduinstlicense]
    ON ([licenses_license].[id] = [licenses_eduinstlicense].[license_ptr_id])
  LEFT OUTER JOIN [licenses_eduinstlicense_schools]
    ON ([licenses_eduinstlicense].[license_ptr_id] = [licenses_eduinstlicense_schools].[eduinstlicense_id])
  LEFT OUTER JOIN [azure_azureclasslicense]
    ON ([licenses_license].[id] = [azure_azureclasslicense].[license_ptr_id])
  LEFT OUTER JOIN [azure_azureschoollicense]
    ON ([licenses_license].[id] = [azure_azureschoollicense].[license_ptr_id])
 WHERE ([licenses_classlicense].[school_class_id] = 1757 OR [licenses_schoollicense].[school_id] = 1361 OR [licenses_eduinstlicense_schools].[school_id] = 1361 OR [azure_azureclasslicense].[school_class_id] = 1757 OR [azure_azureschoollicense].[school_id] = 1361)
 ORDER BY [licenses_license].[end_date] ASC
OFFSET 0 ROWS
SELECT ••• FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [schools_school] U2 ON (U1.[school_id] = U2.[id]) INNER JOIN [licenses_eduinstlicense_schools] U3 ON (U2.[id] = U3.[school_id]) WHERE (U0.[is_active] = True AND U3.[eduinstlicense_id] = [licenses_eduinstlicense].[license_ptr_id]) GROUP BY U3.[eduinstlicense_id]), 0) + COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [schools_school] U2 ON (U1.[school_id] = U2.[id]) INNER JOIN [licenses_schoollicense] U3 ON (U2.[id] = U3.[school_id]) WHERE (U0.[is_active] = True AND U3.[license_ptr_id] = [licenses_schoollicense].[license_ptr_id]) GROUP BY U3.[license_ptr_id]), 0)) + COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [licenses_classlicense] U2 ON (U1.[id] = U2.[school_class_id]) WHERE (U0.[is_active] = True AND U2.[license_ptr_id] = [licenses_classlicense].[license_ptr_id]) GROUP BY U2.[license_ptr_id]), 0)) + COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [azure_azureclasslicense] U2 ON (U1.[id] = U2.[school_class_id]) WHERE (U0.[is_active] = True AND U2.[license_ptr_id] = [azure_azureclasslicense].[license_ptr_id]) GROUP BY U2.[license_ptr_id]), 0)) + COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [users_student] U0 INNER JOIN [schools_schoolclass] U1 ON (U0.[school_class_id] = U1.[id]) INNER JOIN [schools_school] U2 ON (U1.[school_id] = U2.[id]) INNER JOIN [azure_azureschoollicense] U3 ON (U2.[id] = U3.[school_id]) WHERE (U0.[is_active] = True AND U3.[license_ptr_id] = [azure_azureschoollicense].[license_ptr_id]) GROUP BY U3.[license_ptr_id]), 0)) AS [active_users] FROM [licenses_license] LEFT OUTER JOIN [licenses_classlicense] ON ([licenses_license].[id] = [licenses_classlicense].[license_ptr_id]) LEFT OUTER JOIN [licenses_schoollicense] ON ([licenses_license].[id] = [licenses_schoollicense].[license_ptr_id]) LEFT OUTER JOIN [licenses_eduinstlicense] ON ([licenses_license].[id] = [licenses_eduinstlicense].[license_ptr_id]) LEFT OUTER JOIN [licenses_eduinstlicense_schools] ON ([licenses_eduinstlicense].[license_ptr_id] = [licenses_eduinstlicense_schools].[eduinstlicense_id]) LEFT OUTER JOIN [azure_azureclasslicense] ON ([licenses_license].[id] = [azure_azureclasslicense].[license_ptr_id]) LEFT OUTER JOIN [azure_azureschoollicense] ON ([licenses_license].[id] = [azure_azureschoollicense].[license_ptr_id]) WHERE ([licenses_classlicense].[school_class_id] = 1757 OR [licenses_schoollicense].[school_id] = 1361 OR [licenses_eduinstlicense_schools].[school_id] = 1361 OR [azure_azureclasslicense].[school_class_id] = 1757 OR [azure_azureschoollicense].[school_id] = 1361) ORDER BY [licenses_license].[end_date] ASC OFFSET 0 ROWS
1.49

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(697)
  **self.get_license_data(),

/app/schools/views/generic.py in get_license_data(762)
  licenses = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/polymorphic/query.py in _polymorphic_iterator(58)
  o = next(base_iter)

SELECT [licenses_license].[id],
       [licenses_license].[polymorphic_ctype_id],
       [licenses_license].[created],
       [licenses_license].[updated],
       [licenses_license].[created_by_id],
       [licenses_license].[is_trial],
       [licenses_license].[start_date],
       [licenses_license].[end_date],
       [licenses_license].[number_of_users],
       [licenses_license].[customer_id],
       [licenses_classlicense].[license_ptr_id],
       [licenses_classlicense].[school_class_id]
  FROM [licenses_classlicense]
 INNER JOIN [licenses_license]
    ON ([licenses_classlicense].[license_ptr_id] = [licenses_license].[id])
 WHERE [licenses_classlicense].[license_ptr_id] IN (1645)
SELECT ••• FROM [licenses_classlicense] INNER JOIN [licenses_license] ON ([licenses_classlicense].[license_ptr_id] = [licenses_license].[id]) WHERE [licenses_classlicense].[license_ptr_id] IN (1645)
1.47

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/users/mixins.py in dispatch(42)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py in dispatch(71)
  return super().dispatch(request, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/groplay_django/views.py in dispatch(172)
  return super().dispatch(request, *args, **kwargs)

/app/schools/views/generic.py in get_context_data(697)
  **self.get_license_data(),

/app/schools/views/generic.py in get_license_data(762)
  licenses = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

/app/.venv/lib/python3.11/site-packages/polymorphic/query.py in _polymorphic_iterator(64)
  real_results = self.queryset._get_real_instances(base_result_objects)

/app/.venv/lib/python3.11/site-packages/polymorphic/query.py in _get_real_instances(457)
  real_objects_dict = {

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
0.81

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT [schools_schoolclass].[id],
       [schools_schoolclass].[name],
       [schools_school].[name] AS [school_name]
  FROM [schools_schoolclass]
 INNER JOIN [users_teacher_school_classes]
    ON ([schools_schoolclass].[id] = [users_teacher_school_classes].[schoolclass_id])
 INNER JOIN [schools_school]
    ON ([schools_schoolclass].[school_id] = [schools_school].[id])
 WHERE ([users_teacher_school_classes].[teacher_id] = 33151 AND [schools_schoolclass].[is_active] = True)
 ORDER BY [schools_schoolclass].[name] ASC
OFFSET 0 ROWS
SELECT ••• FROM [schools_schoolclass] INNER JOIN [users_teacher_school_classes] ON ([schools_schoolclass].[id] = [users_teacher_school_classes].[schoolclass_id]) INNER JOIN [schools_school] ON ([schools_schoolclass].[school_id] = [schools_school].[id]) WHERE ([users_teacher_school_classes].[teacher_id] = 33151 AND [schools_schoolclass].[is_active] = True) ORDER BY [schools_schoolclass].[name] ASC OFFSET 0 ROWS
0.78

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(190)
  "header": header_context(request, user),

/app/edulms/context_processors.py in header_context(94)
  context["school_classes"] = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [schools_pendingschoolclass].[name],
       [schools_school].[name] AS [school_name]
  FROM [schools_pendingschoolclass]
 INNER JOIN [schools_school]
    ON ([schools_pendingschoolclass].[school_id] = [schools_school].[id])
 WHERE [schools_pendingschoolclass].[created_by_id] = 33151
SELECT ••• FROM [schools_pendingschoolclass] INNER JOIN [schools_school] ON ([schools_pendingschoolclass].[school_id] = [schools_school].[id]) WHERE [schools_pendingschoolclass].[created_by_id] = 33151
0.72

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(190)
  "header": header_context(request, user),

/app/edulms/context_processors.py in header_context(100)
  context["pending_classes"] = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [schools_school].[id],
       [schools_school].[name],
       [schools_school].[city]
  FROM [schools_school]
 INNER JOIN [schools_school_admins]
    ON ([schools_school].[id] = [schools_school_admins].[school_id])
 WHERE ([schools_school_admins].[user_id] = 33151 AND [schools_school].[is_active] = True)
 ORDER BY [schools_school].[name] ASC
OFFSET 0 ROWS
SELECT ••• FROM [schools_school] INNER JOIN [schools_school_admins] ON ([schools_school].[id] = [schools_school_admins].[school_id]) WHERE ([schools_school_admins].[user_id] = 33151 AND [schools_school].[is_active] = True) ORDER BY [schools_school].[name] ASC OFFSET 0 ROWS
0.84

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(190)
  "header": header_context(request, user),

/app/edulms/context_processors.py in header_context(111)
  context["admin_schools"] = list(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [users_player].[id],
       [users_player].[points],
       [users_student].[first_name],
       [users_student].[last_name],
       [users_student].[school_class_id],
       [users_student].[is_active],
       [users_student].[language],
       [users_student].[created],
       [users_student].[created_by_id],
       [users_student].[last_login],
       [users_student].[player_id],
       [users_student].[creation_method],
       (
        SELECT TOP 1 U0.[token]
          FROM [users_playertoken] U0
         WHERE (U0.[expiry] IS NULL AND U0.[player_id] = [users_student].[player_id])
         ORDER BY U0.[is_temporary] DESC,
                  CASE WHEN U0.[expiry] IS NULL THEN 0
                       ELSE 1
                        END,
                  U0.[expiry] DESC,
                  U0.[created] DESC
       ) AS [last_valid_token],
       LTRIM(RTRIM(CONCAT([users_student].[first_name], CONCAT(' ', [users_student].[last_name])))) AS [name]
  FROM [users_student]
 INNER JOIN [users_player]
    ON ([users_student].[player_id] = [users_player].[id])
 WHERE ([users_student].[is_active] = True AND [users_student].[school_class_id] = 1757)
 ORDER BY [users_student].[last_name] ASC,
          [users_student].[first_name] ASC
OFFSET 0 ROWS
SELECT ••• FROM [users_playertoken] U0 WHERE (U0.[expiry] IS NULL AND U0.[player_id] = [users_student].[player_id]) ORDER BY U0.[is_temporary] DESC, CASE WHEN U0.[expiry] IS NULL THEN 0 ELSE 1 END, U0.[expiry] DESC, U0.[created] DESC) AS [last_valid_token], LTRIM(RTRIM(CONCAT([users_student].[first_name], CONCAT(' ', [users_student].[last_name])))) AS [name] FROM [users_student] INNER JOIN [users_player] ON ([users_student].[player_id] = [users_player].[id]) WHERE ([users_student].[is_active] = True AND [users_student].[school_class_id] = 1757) ORDER BY [users_student].[last_name] ASC, [users_student].[first_name] ASC OFFSET 0 ROWS
3.96

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/forms/formsets.py in __len__(99)
  return len(self.forms)

/app/.venv/lib/python3.11/site-packages/django/forms/formsets.py in forms(157)
  for i in range(self.total_form_count())

/app/.venv/lib/python3.11/site-packages/django/forms/formsets.py in total_form_count(132)
  initial_forms = self.initial_form_count()

/app/.venv/lib/python3.11/site-packages/django/forms/models.py in initial_form_count(586)
  return len(self.get_queryset())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [users_player].[id],
       [users_player].[points]
  FROM [users_player]
 WHERE [users_player].[id] IN (78440, 78438, 78439)
SELECT ••• FROM [users_player] WHERE [users_player].[id] IN (78440, 78438, 78439)
0.74

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/forms/formsets.py in __len__(99)
  return len(self.forms)

/app/.venv/lib/python3.11/site-packages/django/forms/formsets.py in forms(157)
  for i in range(self.total_form_count())

/app/.venv/lib/python3.11/site-packages/django/forms/formsets.py in total_form_count(132)
  initial_forms = self.initial_form_count()

/app/.venv/lib/python3.11/site-packages/django/forms/models.py in initial_form_count(586)
  return len(self.get_queryset())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT ([skolon_skolonlicense_players].[player_id]) AS [_prefetch_related_val_player_id],
       [skolon_skolonlicense].[skolon_id],
       [skolon_skolonlicense].[is_deleted],
       [skolon_skolonlicense].[expiration_date],
       [skolon_skolonlicense].[owner_school_id],
       [skolon_skolonlicense].[is_demo],
       [skolon_skolonlicense].[target],
       [skolon_skolonlicense].[is_reminder_sent],
       COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [skolon_skolonlicense_players] U0 WHERE U0.[skolonlicense_id] = [skolon_skolonlicense].[skolon_id] GROUP BY U0.[skolonlicense_id]), 0) AS [player_count],
       [schools_school].[id],
       [schools_school].[created],
       [schools_school].[updated],
       [schools_school].[created_by_id],
       [schools_school].[name],
       [schools_school].[language],
       [schools_school].[address],
       [schools_school].[zipcode],
       [schools_school].[city],
       [schools_school].[municipality],
       [schools_school].[curriculum_id],
       [schools_school].[country],
       [schools_school].[is_active],
       [schools_school].[comments],
       [schools_school].[skolon_organization_id],
       [schools_school].[creation_method]
  FROM [skolon_skolonlicense]
 INNER JOIN [skolon_skolonlicense_players]
    ON ([skolon_skolonlicense].[skolon_id] = [skolon_skolonlicense_players].[skolonlicense_id])
  LEFT OUTER JOIN [schools_school]
    ON ([skolon_skolonlicense].[owner_school_id] = [schools_school].[id])
 WHERE ([skolon_skolonlicense].[is_deleted] = False AND [skolon_skolonlicense_players].[player_id] IN (78438, 78439, 78440))
 ORDER BY [skolon_skolonlicense].[expiration_date] DESC
OFFSET 0 ROWS
SELECT ••• FROM [skolon_skolonlicense_players] U0 WHERE U0.[skolonlicense_id] = [skolon_skolonlicense].[skolon_id] GROUP BY U0.[skolonlicense_id]), 0) AS [player_count], [schools_school].[id], [schools_school].[created], [schools_school].[updated], [schools_school].[created_by_id], [schools_school].[name], [schools_school].[language], [schools_school].[address], [schools_school].[zipcode], [schools_school].[city], [schools_school].[municipality], [schools_school].[curriculum_id], [schools_school].[country], [schools_school].[is_active], [schools_school].[comments], [schools_school].[skolon_organization_id], [schools_school].[creation_method] FROM [skolon_skolonlicense] INNER JOIN [skolon_skolonlicense_players] ON ([skolon_skolonlicense].[skolon_id] = [skolon_skolonlicense_players].[skolonlicense_id]) LEFT OUTER JOIN [schools_school] ON ([skolon_skolonlicense].[owner_school_id] = [schools_school].[id]) WHERE ([skolon_skolonlicense].[is_deleted] = False AND [skolon_skolonlicense_players].[player_id] IN (78438, 78439, 78440)) ORDER BY [skolon_skolonlicense].[expiration_date] DESC OFFSET 0 ROWS
0.88

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/forms/formsets.py in __len__(99)
  return len(self.forms)

/app/.venv/lib/python3.11/site-packages/django/forms/formsets.py in forms(157)
  for i in range(self.total_form_count())

/app/.venv/lib/python3.11/site-packages/django/forms/formsets.py in total_form_count(132)
  initial_forms = self.initial_form_count()

/app/.venv/lib/python3.11/site-packages/django/forms/models.py in initial_form_count(586)
  return len(self.get_queryset())

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT [users_user].[id],
       [users_user].[password],
       [users_user].[last_login],
       [users_user].[is_superuser],
       [users_user].[username],
       [users_user].[first_name],
       [users_user].[last_name],
       [users_user].[email],
       [users_user].[is_staff],
       [users_user].[is_active],
       [users_user].[date_joined],
       [users_user].[language],
       [users_user].[has_logged_in],
       [users_user].[email_verified],
       [users_user].[email_verified_time],
       [users_user].[show_tutorial],
       [users_user].[last_active_class_id],
       [users_user].[previous_login],
       [users_user].[timezone],
       [users_user].[created_by_id],
       [users_user].[is_coworker],
       [users_user].[receives_newsletter],
       [users_teacher].[player_id],
       [users_teacher].[is_test],
       [users_teacher].[user_id],
       [users_teacher].[creation_method],
       (
        SELECT TOP 1 U0.[token]
          FROM [users_playertoken] U0
         INNER JOIN [users_player] U1
            ON (U0.[player_id] = U1.[id])
         INNER JOIN [users_teacher] U2
            ON (U1.[id] = U2.[player_id])
         WHERE (U0.[expiry] IS NULL AND U2.[user_id] = [users_teacher].[user_id])
         ORDER BY U0.[is_temporary] DESC,
                  CASE WHEN U0.[expiry] IS NULL THEN 0
                       ELSE 1
                        END,
                  U0.[expiry] DESC,
                  U0.[created] DESC
       ) AS [last_valid_token]
  FROM [users_teacher]
 INNER JOIN [users_teacher_school_classes]
    ON ([users_teacher].[user_id] = [users_teacher_school_classes].[teacher_id])
 INNER JOIN [users_user]
    ON ([users_teacher].[user_id] = [users_user].[id])
 WHERE ([users_teacher_school_classes].[schoolclass_id] = 1757 AND [users_user].[email_verified] = True AND [users_user].[is_active] = True)
SELECT ••• FROM [users_playertoken] U0 INNER JOIN [users_player] U1 ON (U0.[player_id] = U1.[id]) INNER JOIN [users_teacher] U2 ON (U1.[id] = U2.[player_id]) WHERE (U0.[expiry] IS NULL AND U2.[user_id] = [users_teacher].[user_id]) ORDER BY U0.[is_temporary] DESC, CASE WHEN U0.[expiry] IS NULL THEN 0 ELSE 1 END, U0.[expiry] DESC, U0.[created] DESC) AS [last_valid_token] FROM [users_teacher] INNER JOIN [users_teacher_school_classes] ON ([users_teacher].[user_id] = [users_teacher_school_classes].[teacher_id]) INNER JOIN [users_user] ON ([users_teacher].[user_id] = [users_user].[id]) WHERE ([users_teacher_school_classes].[schoolclass_id] = 1757 AND [users_user].[email_verified] = True AND [users_user].[is_active] = True)
0.98

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [users_player].[id],
       [users_player].[points]
  FROM [users_player]
 WHERE [users_player].[id] IN (78437)
SELECT ••• FROM [users_player] WHERE [users_player].[id] IN (78437)
2 similar queries. Duplicated 2 times.
0.61

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT ([skolon_skolonlicense_players].[player_id]) AS [_prefetch_related_val_player_id],
       [skolon_skolonlicense].[skolon_id],
       [skolon_skolonlicense].[is_deleted],
       [skolon_skolonlicense].[expiration_date],
       [skolon_skolonlicense].[owner_school_id],
       [skolon_skolonlicense].[is_demo],
       [skolon_skolonlicense].[target],
       [skolon_skolonlicense].[is_reminder_sent],
       COALESCE((SELECT COUNT_BIG(U0.[player_id]) AS [aggregation] FROM [skolon_skolonlicense_players] U0 WHERE U0.[skolonlicense_id] = [skolon_skolonlicense].[skolon_id] GROUP BY U0.[skolonlicense_id]), 0) AS [player_count],
       [schools_school].[id],
       [schools_school].[created],
       [schools_school].[updated],
       [schools_school].[created_by_id],
       [schools_school].[name],
       [schools_school].[language],
       [schools_school].[address],
       [schools_school].[zipcode],
       [schools_school].[city],
       [schools_school].[municipality],
       [schools_school].[curriculum_id],
       [schools_school].[country],
       [schools_school].[is_active],
       [schools_school].[comments],
       [schools_school].[skolon_organization_id],
       [schools_school].[creation_method]
  FROM [skolon_skolonlicense]
 INNER JOIN [skolon_skolonlicense_players]
    ON ([skolon_skolonlicense].[skolon_id] = [skolon_skolonlicense_players].[skolonlicense_id])
  LEFT OUTER JOIN [schools_school]
    ON ([skolon_skolonlicense].[owner_school_id] = [schools_school].[id])
 WHERE ([skolon_skolonlicense].[is_deleted] = False AND [skolon_skolonlicense_players].[player_id] IN (78437))
 ORDER BY [skolon_skolonlicense].[expiration_date] DESC
OFFSET 0 ROWS
SELECT ••• FROM [skolon_skolonlicense_players] U0 WHERE U0.[skolonlicense_id] = [skolon_skolonlicense].[skolon_id] GROUP BY U0.[skolonlicense_id]), 0) AS [player_count], [schools_school].[id], [schools_school].[created], [schools_school].[updated], [schools_school].[created_by_id], [schools_school].[name], [schools_school].[language], [schools_school].[address], [schools_school].[zipcode], [schools_school].[city], [schools_school].[municipality], [schools_school].[curriculum_id], [schools_school].[country], [schools_school].[is_active], [schools_school].[comments], [schools_school].[skolon_organization_id], [schools_school].[creation_method] FROM [skolon_skolonlicense] INNER JOIN [skolon_skolonlicense_players] ON ([skolon_skolonlicense].[skolon_id] = [skolon_skolonlicense_players].[skolonlicense_id]) LEFT OUTER JOIN [schools_school] ON ([skolon_skolonlicense].[owner_school_id] = [schools_school].[id]) WHERE ([skolon_skolonlicense].[is_deleted] = False AND [skolon_skolonlicense_players].[player_id] IN (78437)) ORDER BY [skolon_skolonlicense].[expiration_date] DESC OFFSET 0 ROWS
0.91

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(263)
  return self._no_monkey._fetch_all(self)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT [users_user].[id],
       [users_user].[password],
       [users_user].[last_login],
       [users_user].[is_superuser],
       [users_user].[username],
       [users_user].[first_name],
       [users_user].[last_name],
       [users_user].[email],
       [users_user].[is_staff],
       [users_user].[is_active],
       [users_user].[date_joined],
       [users_user].[language],
       [users_user].[has_logged_in],
       [users_user].[email_verified],
       [users_user].[email_verified_time],
       [users_user].[show_tutorial],
       [users_user].[last_active_class_id],
       [users_user].[previous_login],
       [users_user].[timezone],
       [users_user].[created_by_id],
       [users_user].[is_coworker],
       [users_user].[receives_newsletter],
       [users_teacher].[player_id],
       [users_teacher].[is_test],
       [users_teacher].[user_id],
       [users_teacher].[creation_method]
  FROM [users_teacher]
 INNER JOIN [users_teacher_school_classes]
    ON ([users_teacher].[user_id] = [users_teacher_school_classes].[teacher_id])
 INNER JOIN [users_user]
    ON ([users_teacher].[user_id] = [users_user].[id])
 WHERE ([users_teacher_school_classes].[schoolclass_id] = 1757 AND [users_user].[email_verified] = False AND [users_user].[is_active] = True)
SELECT ••• FROM [users_teacher] INNER JOIN [users_teacher_school_classes] ON ([users_teacher].[user_id] = [users_teacher_school_classes].[teacher_id]) INNER JOIN [users_user] ON ([users_teacher].[user_id] = [users_user].[id]) WHERE ([users_teacher_school_classes].[schoolclass_id] = 1757 AND [users_user].[email_verified] = False AND [users_user].[is_active] = True)
2.12

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT [users_teacherpendingschoolclass].[id],
       [users_teacherpendingschoolclass].[teacher_id],
       [users_teacherpendingschoolclass].[school_class_id],
       [users_teacherpendingschoolclass].[created]
  FROM [users_teacherpendingschoolclass]
 INNER JOIN [users_teacher]
    ON ([users_teacherpendingschoolclass].[teacher_id] = [users_teacher].[user_id])
 INNER JOIN [users_user]
    ON ([users_teacher].[user_id] = [users_user].[id])
 WHERE ([users_teacherpendingschoolclass].[school_class_id] = 1757 AND [users_user].[is_active] = True)
SELECT ••• FROM [users_teacherpendingschoolclass] INNER JOIN [users_teacher] ON ([users_teacherpendingschoolclass].[teacher_id] = [users_teacher].[user_id]) INNER JOIN [users_user] ON ([users_teacher].[user_id] = [users_user].[id]) WHERE ([users_teacherpendingschoolclass].[school_class_id] = 1757 AND [users_user].[is_active] = True)
0.70

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(260)
  self._result_cache = list(self._iterable_class(self))

SELECT TOP 21 [schools_schoolclass].[id],
       [schools_schoolclass].[created],
       [schools_schoolclass].[updated],
       [schools_schoolclass].[created_by_id],
       [schools_schoolclass].[name],
       [schools_schoolclass].[grade],
       [schools_schoolclass].[is_active],
       [schools_schoolclass].[comments],
       [schools_schoolclass].[is_test],
       [schools_schoolclass].[language],
       [schools_schoolclass].[school_id],
       [schools_schoolclass].[creation_method]
  FROM [schools_schoolclass]
 WHERE [schools_schoolclass].[id] = 1757
SELECT ••• FROM [schools_schoolclass] WHERE [schools_schoolclass].[id] = 1757
2.33

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/licenses/models.py in get_number_of_active_students(394)
  self.get_school_class().students

/app/licenses/models.py in get_school_class(460)
  return self.school_class

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in get(346)
  return qs._no_monkey.get(qs, *args, **kwargs)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in _fetch_all(250)
  return self._no_monkey._fetch_all(self)

SELECT COUNT_BIG(*)
  FROM (
        SELECT (
                SELECT TOP 1 U0.[token]
                  FROM [users_playertoken] U0
                 WHERE (U0.[expiry] IS NULL AND U0.[player_id] = [users_student].[player_id])
                 ORDER BY U0.[is_temporary] DESC,
                          CASE WHEN U0.[expiry] IS NULL THEN 0
                               ELSE 1
                                END,
                          U0.[expiry] DESC,
                          U0.[created] DESC
               ) AS [last_valid_token]
          FROM [users_student]
         WHERE ([users_student].[school_class_id] = 1757 AND [users_student].[is_active] = True AND NOT ((SELECT TOP 1 U0.[token] FROM [users_playertoken] U0 WHERE (U0.[expiry] IS NULL AND U0.[player_id] = [users_student].[player_id]) ORDER BY U0.[is_temporary] DESC, CASE WHEN U0.[expiry] IS NULL THEN 0 ELSE 1 END, U0.[expiry] DESC, U0.[created] DESC) IS NULL))
       ) subquery
SELECT COUNT_BIG(*) FROM (SELECT (SELECT TOP 1 U0.[token] FROM [users_playertoken] U0 WHERE (U0.[expiry] IS NULL AND U0.[player_id] = [users_student].[player_id]) ORDER BY U0.[is_temporary] DESC, CASE WHEN U0.[expiry] IS NULL THEN 0 ELSE 1 END, U0.[expiry] DESC, U0.[created] DESC) AS [last_valid_token] FROM [users_student] WHERE ([users_student].[school_class_id] = 1757 AND [users_student].[is_active] = True AND NOT ((SELECT TOP 1 U0.[token] FROM [users_playertoken] U0 WHERE (U0.[expiry] IS NULL AND U0.[player_id] = [users_student].[player_id]) ORDER BY U0.[is_temporary] DESC, CASE WHEN U0.[expiry] IS NULL THEN 0 ELSE 1 END, U0.[expiry] DESC, U0.[created] DESC) IS NULL))) subquery
3.12

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/licenses/models.py in get_number_of_active_students(398)
  .count()

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
0.59

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
3.35

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
1.26

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
0.86

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
0.74

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
0.76

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
0.89

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
0.83

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
0.73

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(*) AS [__count]
  FROM [logs_loginlog]
 WHERE [logs_loginlog].[user_id] = 33151
SELECT COUNT_BIG(*) AS [__count] FROM [logs_loginlog] WHERE [logs_loginlog].[user_id] = 33151
11 similar queries. Duplicated 11 times.
2.11

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(214)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(35)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django_user_agents/middleware.py in __call__(14)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(153)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(100)
  return self.nodelist.render(context)

/app/.venv/lib/python3.11/site-packages/groplay_django/templatetags/groplay.py in modal(332)
  return render_modal(

/app/.venv/lib/python3.11/site-packages/groplay_django/utils.py in render_modal(402)
  return mark_safe(render_to_string(template_name=template_name, context=context, request=request))

/opt/python/3/lib/python3.11/contextlib.py in __enter__(137)
  return next(self.gen)

/app/edulms/context_processors.py in edulms_context(178)
  show_recommend_poll = bool(user and user.recommend_poll_results.count() == 0 and user.loginlog_set.count() >= 3)

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in count(273)
  return self._no_monkey.count(self)

SELECT COUNT_BIG(DISTINCT [help_floatingtutorial_use_cases].[floatingtutorial_id]) AS [floating],
       COUNT_BIG(DISTINCT [help_helparticle_use_cases].[helparticle_id]) AS [articles]
  FROM [help_tutorialusecase]
  LEFT OUTER JOIN [help_floatingtutorial_use_cases]
    ON ([help_tutorialusecase].[key] = [help_floatingtutorial_use_cases].[tutorialusecase_id])
  LEFT OUTER JOIN [help_helparticle_use_cases]
    ON ([help_tutorialusecase].[key] = [help_helparticle_use_cases].[tutorialusecase_id])
 WHERE [help_tutorialusecase].[key] = '2'
SELECT ••• FROM [help_tutorialusecase] LEFT OUTER JOIN [help_floatingtutorial_use_cases] ON ([help_tutorialusecase].[key] = [help_floatingtutorial_use_cases].[tutorialusecase_id]) LEFT OUTER JOIN [help_helparticle_use_cases] ON ([help_tutorialusecase].[key] = [help_helparticle_use_cases].[tutorialusecase_id]) WHERE [help_tutorialusecase].[key] = '2'
1.08

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(167)
  return self.get_response(request)

/app/edulms/middleware.py in __call__(222)
  counts = TutorialUseCase.objects.filter(key=request.user.show_tutorial).aggregate(

/app/.venv/lib/python3.11/site-packages/cacheops/query.py in aggregate(305)
  return self._no_monkey.aggregate(self, *args, **kwargs)


   SET NOCOUNT OFF; UPDATE [django_session]
   SET [session_data] = '.eJxVj0lPwzAQhf9LzlXJatPeWhVFCkQgsRQJocjLOLHipYodIEH8d5yqBzh-7828efMdNWT0XTM6GBrJo22UZUmRRKu_OiWsB7OYC7r1hd26thzU_uL-W-mI68K8IAIozllOUZxQhmMghSAppjniOM02tKApCAyMiCK7RiwQgoTnaRYEFOdLqCKmHUkLIQ5MELzUMFuz8M042BNcPXrL-s4qHVz4OskBeKMkA-OgMdZLIRnx0przgykqQihzg_A29A4pdF8eNxM9kM19BXSHaV_ukJxeqvmJ64-HemxLp-fpUGMx3b4ei-Nz5f1cKda5Nr7Lls8_QTGrodHgXKjqou3b-ypygZaz2nKiztrPLwPIfVA:1uZgcr:qJCkKBetcvNzV5_nCXIReHAfFflpva4_TAPYuSa35wo',
       [expire_date] = datetime.datetime(2025, 7, 24, 2, 3, 5, 635561, tzinfo=datetime.timezone.utc)
 WHERE [django_session].[session_key] = 'gp2j7x7nsra17972p1ib89gzjy8akazc'
SET NOCOUNT OFF; UPDATE [django_session] SET [session_data] = '.eJxVj0lPwzAQhf9LzlXJatPeWhVFCkQgsRQJocjLOLHipYodIEH8d5yqBzh-7828efMdNWT0XTM6GBrJo22UZUmRRKu_OiWsB7OYC7r1hd26thzU_uL-W-mI68K8IAIozllOUZxQhmMghSAppjniOM02tKApCAyMiCK7RiwQgoTnaRYEFOdLqCKmHUkLIQ5MELzUMFuz8M042BNcPXrL-s4qHVz4OskBeKMkA-OgMdZLIRnx0przgykqQihzg_A29A4pdF8eNxM9kM19BXSHaV_ukJxeqvmJ64-HemxLp-fpUGMx3b4ei-Nz5f1cKda5Nr7Lls8_QTGrodHgXKjqou3b-ypygZaz2nKiztrPLwPIfVA:1uZgcr:qJCkKBetcvNzV5_nCXIReHAfFflpva4_TAPYuSa35wo', [expire_date] = datetime.datetime(2025, 7, 24, 2, 3, 5, 635561, tzinfo=datetime.timezone.utc) WHERE [django_session].[session_key] = 'gp2j7x7nsra17972p1ib89gzjy8akazc'
4.13

Connection: default

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/opt/python/3/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle(281)
  keepalive = self.handle_request(req, conn)

/app/.venv/lib/python3.11/site-packages/gunicorn/workers/gthread.py in handle_request(333)
  respiter = self.wsgi(environ, resp.start_response)

/app/.venv/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/.venv/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/edulms/middleware.py in __call__(180)
  response = self.get_response(request)

/app/edulms/middleware.py in __call__(43)
  response = self.get_response(request)

/app/.venv/lib/python3.11/site-packages/django/contrib/sessions/middleware.py in process_response(61)
  request.session.save()

/app/.venv/lib/python3.11/site-packages/django/contrib/sessions/backends/db.py in save(87)
  obj.save(force_insert=must_create, force_update=not must_create, using=using)

Static files (1871 found, 47 used)

Static file paths

  1. /app/assets/vendor (prefix vendor)
  2. /app/assets/bundles (prefix bundles)
  3. /app/edulms/static (prefix statici18n)

Static file apps

  1. debug_toolbar
  2. modeltranslation
  3. dal
  4. dal_select2
  5. django.contrib.admin
  6. api.v2
  7. edulms
  8. polymorphic
  9. rest_framework
  10. django_extensions
  11. adminsortable2
  12. ckeditor
  13. ckeditor_uploader
  14. import_export
  15. logs
  16. remote_backends
  17. silk

Static files

edulms/images/icons/favicon.ico
/app/edulms/static/edulms/images/icons/favicon.ico
bundles/vendors-node_modules_bootstrap_dist_js_bootstrap_esm_js-node_modules_detect-browser_es_index_js-28c20b276fcad0675d72.js
/app/assets/bundles/vendors-node_modules_bootstrap_dist_js_bootstrap_esm_js-node_modules_detect-browser_es_index_js-28c20b276fcad0675d72.js
bundles/vendors-node_modules_dirrty_dist_jquery_dirrty_js-node_modules_jquery_dist_jquery-exposed_js--bcc8ca-57e65991ab709d1e48f7.js
/app/assets/bundles/vendors-node_modules_dirrty_dist_jquery_dirrty_js-node_modules_jquery_dist_jquery-exposed_js--bcc8ca-57e65991ab709d1e48f7.js
bundles/vendors-node_modules_player_js_dist_player-0_1_0_js-076a994979dc984d95a8.js
/app/assets/bundles/vendors-node_modules_player_js_dist_player-0_1_0_js-076a994979dc984d95a8.js
bundles/vendors-node_modules_petite-vue_dist_petite-vue_es_js-5061112c7445290cab9c.js
/app/assets/bundles/vendors-node_modules_petite-vue_dist_petite-vue_es_js-5061112c7445290cab9c.js
bundles/assets_ts_utils_ts-1a9158966a1e9785cd25.js
/app/assets/bundles/assets_ts_utils_ts-1a9158966a1e9785cd25.js
bundles/assets_css_style_scss-a6bf412c9404207c01aa.css
/app/assets/bundles/assets_css_style_scss-a6bf412c9404207c01aa.css
bundles/assets_ts_dynamic_ts-9aa0a6edd5265fedc990.js
/app/assets/bundles/assets_ts_dynamic_ts-9aa0a6edd5265fedc990.js
bundles/assets_ts_entrypoints_base_ts-ae852189512eec700027.js
/app/assets/bundles/assets_ts_entrypoints_base_ts-ae852189512eec700027.js
bundles/schoolClassDetail-a68c6cb187aa36a3d117.js
/app/assets/bundles/schoolClassDetail-a68c6cb187aa36a3d117.js
edulms/images/logos/growplanet_logo_shadow.png
/app/edulms/static/edulms/images/logos/growplanet_logo_shadow.png
edulms/images/logos/growplanet_logo_shadow.png
/app/edulms/static/edulms/images/logos/growplanet_logo_shadow.png
edulms/images/mt-reversed.png
/app/edulms/static/edulms/images/mt-reversed.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/flags/en.png
/app/edulms/static/edulms/images/flags/en.png
edulms/images/flags/en.png
/app/edulms/static/edulms/images/flags/en.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/flags/sv.png
/app/edulms/static/edulms/images/flags/sv.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png
jsi18n/en/djangojs.js
/app/edulms/static/jsi18n/en/djangojs.js
bundles/vendors-node_modules_bootstrap_dist_js_bootstrap_esm_js-node_modules_detect-browser_es_index_js-28c20b276fcad0675d72.js
/app/assets/bundles/vendors-node_modules_bootstrap_dist_js_bootstrap_esm_js-node_modules_detect-browser_es_index_js-28c20b276fcad0675d72.js
bundles/vendors-node_modules_dirrty_dist_jquery_dirrty_js-node_modules_jquery_dist_jquery-exposed_js--bcc8ca-57e65991ab709d1e48f7.js
/app/assets/bundles/vendors-node_modules_dirrty_dist_jquery_dirrty_js-node_modules_jquery_dist_jquery-exposed_js--bcc8ca-57e65991ab709d1e48f7.js
bundles/vendors-node_modules_player_js_dist_player-0_1_0_js-076a994979dc984d95a8.js
/app/assets/bundles/vendors-node_modules_player_js_dist_player-0_1_0_js-076a994979dc984d95a8.js
bundles/vendors-node_modules_petite-vue_dist_petite-vue_es_js-5061112c7445290cab9c.js
/app/assets/bundles/vendors-node_modules_petite-vue_dist_petite-vue_es_js-5061112c7445290cab9c.js
bundles/assets_ts_utils_ts-1a9158966a1e9785cd25.js
/app/assets/bundles/assets_ts_utils_ts-1a9158966a1e9785cd25.js
bundles/assets_css_style_scss-a6bf412c9404207c01aa.css
/app/assets/bundles/assets_css_style_scss-a6bf412c9404207c01aa.css
bundles/assets_ts_dynamic_ts-9aa0a6edd5265fedc990.js
/app/assets/bundles/assets_ts_dynamic_ts-9aa0a6edd5265fedc990.js
bundles/assets_ts_entrypoints_base_ts-ae852189512eec700027.js
/app/assets/bundles/assets_ts_entrypoints_base_ts-ae852189512eec700027.js
bundles/schoolClassDetail-a68c6cb187aa36a3d117.js
/app/assets/bundles/schoolClassDetail-a68c6cb187aa36a3d117.js
edulms/images/mt.png
/app/edulms/static/edulms/images/mt.png

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

Path Location
vendor/jquery-ui-touch-punch/jquery.ui.touch-punch.js /app/assets/vendor/jquery-ui-touch-punch/jquery.ui.touch-punch.js
vendor/jquery-ui-touch-punch/README.md /app/assets/vendor/jquery-ui-touch-punch/README.md
vendor/jquery-ui-touch-punch/bower.json /app/assets/vendor/jquery-ui-touch-punch/bower.json
vendor/jquery-ui-touch-punch/jquery-ui-notes.txt /app/assets/vendor/jquery-ui-touch-punch/jquery-ui-notes.txt
vendor/jquery-ui-touch-punch/.git /app/assets/vendor/jquery-ui-touch-punch/.git
vendor/ckeditor-django-links/plugin.js /app/assets/vendor/ckeditor-django-links/plugin.js
vendor/ckeditor-django-links/dialogs/djangolink.js /app/assets/vendor/ckeditor-django-links/dialogs/djangolink.js
vendor/ckeditor-django-links/icons/djangolink.png /app/assets/vendor/ckeditor-django-links/icons/djangolink.png
vendor/ckeditor-django-links/icons/hidpi/djangolink.png /app/assets/vendor/ckeditor-django-links/icons/hidpi/djangolink.png
vendor/ckeditor-html5-video/README.md /app/assets/vendor/ckeditor-html5-video/README.md
vendor/ckeditor-html5-video/LICENSE /app/assets/vendor/ckeditor-html5-video/LICENSE
vendor/ckeditor-html5-video/.git /app/assets/vendor/ckeditor-html5-video/.git
vendor/ckeditor-html5-video/html5video/plugin.js /app/assets/vendor/ckeditor-html5-video/html5video/plugin.js
vendor/ckeditor-html5-video/html5video/lang/pt-br.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/pt-br.js
vendor/ckeditor-html5-video/html5video/lang/uk.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/uk.js
vendor/ckeditor-html5-video/html5video/lang/fr.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/fr.js
vendor/ckeditor-html5-video/html5video/lang/uz.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/uz.js
vendor/ckeditor-html5-video/html5video/lang/ko.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/ko.js
vendor/ckeditor-html5-video/html5video/lang/he.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/he.js
vendor/ckeditor-html5-video/html5video/lang/es.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/es.js
vendor/ckeditor-html5-video/html5video/lang/en.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/en.js
vendor/ckeditor-html5-video/html5video/lang/ca.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/ca.js
vendor/ckeditor-html5-video/html5video/lang/de.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/de.js
vendor/ckeditor-html5-video/html5video/lang/pt.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/pt.js
vendor/ckeditor-html5-video/html5video/lang/zh-cn.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/zh-cn.js
vendor/ckeditor-html5-video/html5video/lang/pl.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/pl.js
vendor/ckeditor-html5-video/html5video/lang/fa.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/fa.js
vendor/ckeditor-html5-video/html5video/lang/ru.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/ru.js
vendor/ckeditor-html5-video/html5video/lang/bg.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/bg.js
vendor/ckeditor-html5-video/html5video/lang/eu.js /app/assets/vendor/ckeditor-html5-video/html5video/lang/eu.js
vendor/ckeditor-html5-video/html5video/dialogs/html5video.js /app/assets/vendor/ckeditor-html5-video/html5video/dialogs/html5video.js
vendor/ckeditor-html5-video/html5video/icons/html5video.png /app/assets/vendor/ckeditor-html5-video/html5video/icons/html5video.png
vendor/ckeditor-html5-video/html5video/icons/hidpi/html5video.png /app/assets/vendor/ckeditor-html5-video/html5video/icons/hidpi/html5video.png
vendor/pygal.js/README.md /app/assets/vendor/pygal.js/README.md
vendor/pygal.js/.nojekyll /app/assets/vendor/pygal.js/.nojekyll
vendor/pygal.js/bower.json /app/assets/vendor/pygal.js/bower.json
vendor/pygal.js/package.json /app/assets/vendor/pygal.js/package.json
vendor/pygal.js/.git /app/assets/vendor/pygal.js/.git
vendor/pygal.js/Gruntfile.coffee /app/assets/vendor/pygal.js/Gruntfile.coffee
vendor/pygal.js/latest/pygal-tooltips.js /app/assets/vendor/pygal.js/latest/pygal-tooltips.js
vendor/pygal.js/latest/pygal-tooltips.min.js /app/assets/vendor/pygal.js/latest/pygal-tooltips.min.js
vendor/pygal.js/javascripts/pygal-tooltips.js /app/assets/vendor/pygal.js/javascripts/pygal-tooltips.js
vendor/pygal.js/javascripts/svg.jquery.js /app/assets/vendor/pygal.js/javascripts/svg.jquery.js
vendor/pygal.js/2.0.x/pygal-tooltips.js /app/assets/vendor/pygal.js/2.0.x/pygal-tooltips.js
vendor/pygal.js/2.0.x/pygal-tooltips.min.js /app/assets/vendor/pygal.js/2.0.x/pygal-tooltips.min.js
vendor/pygal.js/coffee/pygal-tooltips.coffee /app/assets/vendor/pygal.js/coffee/pygal-tooltips.coffee
vendor/ckeditor-video/README.md /app/assets/vendor/ckeditor-video/README.md
vendor/ckeditor-video/plugin.js /app/assets/vendor/ckeditor-video/plugin.js
vendor/ckeditor-video/LICENSE /app/assets/vendor/ckeditor-video/LICENSE
vendor/ckeditor-video/.git /app/assets/vendor/ckeditor-video/.git
vendor/ckeditor-video/lang/fr.js /app/assets/vendor/ckeditor-video/lang/fr.js
vendor/ckeditor-video/lang/en.js /app/assets/vendor/ckeditor-video/lang/en.js
vendor/ckeditor-video/lang/ru.js /app/assets/vendor/ckeditor-video/lang/ru.js
vendor/ckeditor-video/images/placeholder.src.png /app/assets/vendor/ckeditor-video/images/placeholder.src.png
vendor/ckeditor-video/images/placeholder.png /app/assets/vendor/ckeditor-video/images/placeholder.png
vendor/ckeditor-video/dialogs/video.js /app/assets/vendor/ckeditor-video/dialogs/video.js
vendor/ckeditor-video/icons/video.png /app/assets/vendor/ckeditor-video/icons/video.png
vendor/ckeditor-video/icons/video.src-16.png /app/assets/vendor/ckeditor-video/icons/video.src-16.png
vendor/ckeditor-video/icons/hidpi/video.src-32.png /app/assets/vendor/ckeditor-video/icons/hidpi/video.src-32.png
vendor/ckeditor-video/icons/hidpi/video.png /app/assets/vendor/ckeditor-video/icons/hidpi/video.png
bundles/base-98ff3a0c96ad19c4cea0.js /app/assets/bundles/base-98ff3a0c96ad19c4cea0.js
bundles/logstream-d1fb73ee9dcf1455d705.js.map /app/assets/bundles/logstream-d1fb73ee9dcf1455d705.js.map
bundles/knowledgeBase-87ae33dae311b74cceb6.js.map /app/assets/bundles/knowledgeBase-87ae33dae311b74cceb6.js.map
bundles/assets_ts_entrypoints_base_ts-ae852189512eec700027.js.map /app/assets/bundles/assets_ts_entrypoints_base_ts-ae852189512eec700027.js.map
bundles/email-0abdc5cceac94fb8b75e.css /app/assets/bundles/email-0abdc5cceac94fb8b75e.css
bundles/email-0abdc5cceac94fb8b75e.css.map /app/assets/bundles/email-0abdc5cceac94fb8b75e.css.map
bundles/exams-8a645dfe3e62750d6c26.js /app/assets/bundles/exams-8a645dfe3e62750d6c26.js
bundles/assets_ts_utils_ts-1a9158966a1e9785cd25.js /app/assets/bundles/assets_ts_utils_ts-1a9158966a1e9785cd25.js
bundles/assets_ts_dynamic_ts-9aa0a6edd5265fedc990.js.map /app/assets/bundles/assets_ts_dynamic_ts-9aa0a6edd5265fedc990.js.map
bundles/assets_ts_utils_ts-1a9158966a1e9785cd25.js.map /app/assets/bundles/assets_ts_utils_ts-1a9158966a1e9785cd25.js.map
bundles/studentDetail-b6502bddc01de05460fb.js /app/assets/bundles/studentDetail-b6502bddc01de05460fb.js
bundles/vendors-node_modules_plotly_js-dist-min_plotly_min_js-node_modules_sortablejs_modular_sortabl-4e0c34-ded7067c1583e7afc1c9.js /app/assets/bundles/vendors-node_modules_plotly_js-dist-min_plotly_min_js-node_modules_sortablejs_modular_sortabl-4e0c34-ded7067c1583e7afc1c9.js
bundles/userManagement-a35d7161688bba1042c4.js /app/assets/bundles/userManagement-a35d7161688bba1042c4.js
bundles/schoolAdmin-51ab53e0b10f2ac24be4.js.map /app/assets/bundles/schoolAdmin-51ab53e0b10f2ac24be4.js.map
bundles/googleAssignSchools-2b741ed5984c3cc44ee1.js /app/assets/bundles/googleAssignSchools-2b741ed5984c3cc44ee1.js
bundles/admin-80ff515085a54d3c660e.js /app/assets/bundles/admin-80ff515085a54d3c660e.js
bundles/vendors-node_modules_select2_dist_js_i18n_sv_js-node_modules_select2_dist_js_select2_js-3deef5b099def8ca89a1.js.map /app/assets/bundles/vendors-node_modules_select2_dist_js_i18n_sv_js-node_modules_select2_dist_js_select2_js-3deef5b099def8ca89a1.js.map
bundles/logstream-d1fb73ee9dcf1455d705.js /app/assets/bundles/logstream-d1fb73ee9dcf1455d705.js
bundles/assets_css_style_scss-a6bf412c9404207c01aa.css /app/assets/bundles/assets_css_style_scss-a6bf412c9404207c01aa.css
bundles/areaDetail-162e2e72d1d1e9879bf2.js /app/assets/bundles/areaDetail-162e2e72d1d1e9879bf2.js
bundles/email-6339f2c7046f389b579c.js /app/assets/bundles/email-6339f2c7046f389b579c.js
bundles/vendors-node_modules_petite-vue_dist_petite-vue_es_js-5061112c7445290cab9c.js.map /app/assets/bundles/vendors-node_modules_petite-vue_dist_petite-vue_es_js-5061112c7445290cab9c.js.map
bundles/vendors-node_modules_luxon_src_luxon_js-d303d0c6d84bc5761ca8.js /app/assets/bundles/vendors-node_modules_luxon_src_luxon_js-d303d0c6d84bc5761ca8.js
bundles/vendors-node_modules_petite-vue_dist_petite-vue_es_js-5061112c7445290cab9c.js /app/assets/bundles/vendors-node_modules_petite-vue_dist_petite-vue_es_js-5061112c7445290cab9c.js
bundles/exerciseRoomDetail-7c38ec968406dfba128f.js /app/assets/bundles/exerciseRoomDetail-7c38ec968406dfba128f.js
bundles/areaDetail-162e2e72d1d1e9879bf2.js.map /app/assets/bundles/areaDetail-162e2e72d1d1e9879bf2.js.map
bundles/vendors-node_modules_bootstrap_dist_js_bootstrap_esm_js-node_modules_detect-browser_es_index_js-28c20b276fcad0675d72.js.map /app/assets/bundles/vendors-node_modules_bootstrap_dist_js_bootstrap_esm_js-node_modules_detect-browser_es_index_js-28c20b276fcad0675d72.js.map
bundles/baseJoinClass-d03dda91ea53b43f4d7b.js.map /app/assets/bundles/baseJoinClass-d03dda91ea53b43f4d7b.js.map
bundles/exerciseRoomDetail-7c38ec968406dfba128f.js.map /app/assets/bundles/exerciseRoomDetail-7c38ec968406dfba128f.js.map
bundles/assets_ts_dynamic_ts-9aa0a6edd5265fedc990.js /app/assets/bundles/assets_ts_dynamic_ts-9aa0a6edd5265fedc990.js
bundles/assets_ts_entrypoints_base_ts-ae852189512eec700027.js /app/assets/bundles/assets_ts_entrypoints_base_ts-ae852189512eec700027.js
bundles/joinClass-798ec9aa61f1a896efa9.js /app/assets/bundles/joinClass-798ec9aa61f1a896efa9.js
bundles/admin-85886955a9d0e1184e31.css.map /app/assets/bundles/admin-85886955a9d0e1184e31.css.map
bundles/vendors-node_modules_dirrty_dist_jquery_dirrty_js-node_modules_jquery_dist_jquery-exposed_js--bcc8ca-57e65991ab709d1e48f7.js.map /app/assets/bundles/vendors-node_modules_dirrty_dist_jquery_dirrty_js-node_modules_jquery_dist_jquery-exposed_js--bcc8ca-57e65991ab709d1e48f7.js.map
bundles/newsletterPrefs-6bba4b74e3834f8d312d.js.map /app/assets/bundles/newsletterPrefs-6bba4b74e3834f8d312d.js.map
bundles/teacherActivationForm-976464023848bc446077.js.map /app/assets/bundles/teacherActivationForm-976464023848bc446077.js.map
bundles/admin-80ff515085a54d3c660e.js.map /app/assets/bundles/admin-80ff515085a54d3c660e.js.map
bundles/vendors-node_modules_select2_dist_js_i18n_sv_js-node_modules_select2_dist_js_select2_js-3deef5b099def8ca89a1.js /app/assets/bundles/vendors-node_modules_select2_dist_js_i18n_sv_js-node_modules_select2_dist_js_select2_js-3deef5b099def8ca89a1.js
bundles/help-0c230f70536e12dddcf3.js.map /app/assets/bundles/help-0c230f70536e12dddcf3.js.map
bundles/schoolAdmin-51ab53e0b10f2ac24be4.js /app/assets/bundles/schoolAdmin-51ab53e0b10f2ac24be4.js
bundles/schoolClassDetail-a68c6cb187aa36a3d117.js /app/assets/bundles/schoolClassDetail-a68c6cb187aa36a3d117.js
bundles/vendors-node_modules_bootstrap_dist_js_bootstrap_esm_js-node_modules_detect-browser_es_index_js-28c20b276fcad0675d72.js /app/assets/bundles/vendors-node_modules_bootstrap_dist_js_bootstrap_esm_js-node_modules_detect-browser_es_index_js-28c20b276fcad0675d72.js
bundles/newsletterPrefs-6bba4b74e3834f8d312d.js /app/assets/bundles/newsletterPrefs-6bba4b74e3834f8d312d.js
bundles/userManagement-a35d7161688bba1042c4.js.map /app/assets/bundles/userManagement-a35d7161688bba1042c4.js.map
bundles/base-98ff3a0c96ad19c4cea0.js.map /app/assets/bundles/base-98ff3a0c96ad19c4cea0.js.map
bundles/default-3a5434518a1123396bba.js /app/assets/bundles/default-3a5434518a1123396bba.js
bundles/license-5229317f3be27d92ee0b.js /app/assets/bundles/license-5229317f3be27d92ee0b.js
bundles/teacherActivationForm-976464023848bc446077.js /app/assets/bundles/teacherActivationForm-976464023848bc446077.js
bundles/vendors-node_modules_player_js_dist_player-0_1_0_js-076a994979dc984d95a8.js.map /app/assets/bundles/vendors-node_modules_player_js_dist_player-0_1_0_js-076a994979dc984d95a8.js.map
bundles/studentForm-f852e1cde1066b93c398.js.map /app/assets/bundles/studentForm-f852e1cde1066b93c398.js.map
bundles/baseJoinClass-d03dda91ea53b43f4d7b.js /app/assets/bundles/baseJoinClass-d03dda91ea53b43f4d7b.js
bundles/vendors-node_modules_luxon_src_luxon_js-d303d0c6d84bc5761ca8.js.map /app/assets/bundles/vendors-node_modules_luxon_src_luxon_js-d303d0c6d84bc5761ca8.js.map
bundles/studentForm-f852e1cde1066b93c398.js /app/assets/bundles/studentForm-f852e1cde1066b93c398.js
bundles/assets_css_style_scss-a6bf412c9404207c01aa.css.map /app/assets/bundles/assets_css_style_scss-a6bf412c9404207c01aa.css.map
bundles/statistics-acb78eed7bec934c9823.js /app/assets/bundles/statistics-acb78eed7bec934c9823.js
bundles/exams-8a645dfe3e62750d6c26.js.map /app/assets/bundles/exams-8a645dfe3e62750d6c26.js.map
bundles/schoolClassForm-c5c8a6bdb81e5d07a66b.js /app/assets/bundles/schoolClassForm-c5c8a6bdb81e5d07a66b.js
bundles/license-5229317f3be27d92ee0b.js.map /app/assets/bundles/license-5229317f3be27d92ee0b.js.map
bundles/googleAssignSchools-2b741ed5984c3cc44ee1.js.map /app/assets/bundles/googleAssignSchools-2b741ed5984c3cc44ee1.js.map
bundles/schoolClassDetail-a68c6cb187aa36a3d117.js.map /app/assets/bundles/schoolClassDetail-a68c6cb187aa36a3d117.js.map
bundles/vendors-node_modules_dirrty_dist_jquery_dirrty_js-node_modules_jquery_dist_jquery-exposed_js--bcc8ca-57e65991ab709d1e48f7.js /app/assets/bundles/vendors-node_modules_dirrty_dist_jquery_dirrty_js-node_modules_jquery_dist_jquery-exposed_js--bcc8ca-57e65991ab709d1e48f7.js
bundles/vendors-node_modules_player_js_dist_player-0_1_0_js-076a994979dc984d95a8.js /app/assets/bundles/vendors-node_modules_player_js_dist_player-0_1_0_js-076a994979dc984d95a8.js
bundles/default-3a5434518a1123396bba.js.map /app/assets/bundles/default-3a5434518a1123396bba.js.map
bundles/admin-85886955a9d0e1184e31.css /app/assets/bundles/admin-85886955a9d0e1184e31.css
bundles/studentDetail-b6502bddc01de05460fb.js.map /app/assets/bundles/studentDetail-b6502bddc01de05460fb.js.map
bundles/schoolClassForm-c5c8a6bdb81e5d07a66b.js.map /app/assets/bundles/schoolClassForm-c5c8a6bdb81e5d07a66b.js.map
bundles/statistics-acb78eed7bec934c9823.js.map /app/assets/bundles/statistics-acb78eed7bec934c9823.js.map
bundles/vendors-node_modules_plotly_js-dist-min_plotly_min_js-node_modules_sortablejs_modular_sortabl-4e0c34-ded7067c1583e7afc1c9.js.map /app/assets/bundles/vendors-node_modules_plotly_js-dist-min_plotly_min_js-node_modules_sortablejs_modular_sortabl-4e0c34-ded7067c1583e7afc1c9.js.map
bundles/email-6339f2c7046f389b579c.js.map /app/assets/bundles/email-6339f2c7046f389b579c.js.map
bundles/knowledgeBase-87ae33dae311b74cceb6.js /app/assets/bundles/knowledgeBase-87ae33dae311b74cceb6.js
bundles/help-0c230f70536e12dddcf3.js /app/assets/bundles/help-0c230f70536e12dddcf3.js
bundles/joinClass-798ec9aa61f1a896efa9.js.map /app/assets/bundles/joinClass-798ec9aa61f1a896efa9.js.map
bundles/images/header-desktop.png /app/assets/bundles/images/header-desktop.png
bundles/images/header-mobile.png /app/assets/bundles/images/header-mobile.png
bundles/fonts/fa-brands-400.woff2 /app/assets/bundles/fonts/fa-brands-400.woff2
bundles/fonts/GothamBold.otf /app/assets/bundles/fonts/GothamBold.otf
bundles/fonts/GothamBold.ttf /app/assets/bundles/fonts/GothamBold.ttf
bundles/fonts/Cabin-Regular.ttf /app/assets/bundles/fonts/Cabin-Regular.ttf
bundles/fonts/fa-regular-400.woff2 /app/assets/bundles/fonts/fa-regular-400.woff2
bundles/fonts/fa-solid-900.ttf /app/assets/bundles/fonts/fa-solid-900.ttf
bundles/fonts/fa-solid-900.woff2 /app/assets/bundles/fonts/fa-solid-900.woff2
bundles/fonts/fa-brands-400.ttf /app/assets/bundles/fonts/fa-brands-400.ttf
bundles/fonts/fa-regular-400.ttf /app/assets/bundles/fonts/fa-regular-400.ttf
statici18n/edulms/images/skolon-register-2-en.png /app/edulms/static/edulms/images/skolon-register-2-en.png
statici18n/edulms/images/mt-reversed.png /app/edulms/static/edulms/images/mt-reversed.png
statici18n/edulms/images/mt.png /app/edulms/static/edulms/images/mt.png
statici18n/edulms/images/grow-planet-email-banner-sv.jpg /app/edulms/static/edulms/images/grow-planet-email-banner-sv.jpg
statici18n/edulms/images/grow-planet-email-banner-en.jpg /app/edulms/static/edulms/images/grow-planet-email-banner-en.jpg
statici18n/edulms/images/skolon-register-1-sv.png /app/edulms/static/edulms/images/skolon-register-1-sv.png
statici18n/edulms/images/mt-sad.png /app/edulms/static/edulms/images/mt-sad.png
statici18n/edulms/images/skolon-register-1-en.png /app/edulms/static/edulms/images/skolon-register-1-en.png
statici18n/edulms/images/skolon-register-2-sv.png /app/edulms/static/edulms/images/skolon-register-2-sv.png
statici18n/edulms/images/logos/app-store-badge-en.png /app/edulms/static/edulms/images/logos/app-store-badge-en.png
statici18n/edulms/images/logos/facebook-black-24px.png /app/edulms/static/edulms/images/logos/facebook-black-24px.png
statici18n/edulms/images/logos/instagram-black-64px.png /app/edulms/static/edulms/images/logos/instagram-black-64px.png
statici18n/edulms/images/logos/x-black-24px.png /app/edulms/static/edulms/images/logos/x-black-24px.png
statici18n/edulms/images/logos/xedu-120px.png /app/edulms/static/edulms/images/logos/xedu-120px.png
statici18n/edulms/images/logos/youtube-black-64px.png /app/edulms/static/edulms/images/logos/youtube-black-64px.png
statici18n/edulms/images/logos/growplanet_logo_microsoft.png /app/edulms/static/edulms/images/logos/growplanet_logo_microsoft.png
statici18n/edulms/images/logos/growplanet_logo_shadow.png /app/edulms/static/edulms/images/logos/growplanet_logo_shadow.png
statici18n/edulms/images/logos/app-store-badge-sv.png /app/edulms/static/edulms/images/logos/app-store-badge-sv.png
statici18n/edulms/images/logos/instagram-black-24px.png /app/edulms/static/edulms/images/logos/instagram-black-24px.png
statici18n/edulms/images/logos/growplanet_logo_mt.png /app/edulms/static/edulms/images/logos/growplanet_logo_mt.png
statici18n/edulms/images/logos/facebook-black-64px.png /app/edulms/static/edulms/images/logos/facebook-black-64px.png
statici18n/edulms/images/logos/play-in-browser-en.png /app/edulms/static/edulms/images/logos/play-in-browser-en.png
statici18n/edulms/images/logos/twitter-black-24px.png /app/edulms/static/edulms/images/logos/twitter-black-24px.png
statici18n/edulms/images/logos/growplanet_logo_square.png /app/edulms/static/edulms/images/logos/growplanet_logo_square.png
statici18n/edulms/images/logos/google-play-badge-en.png /app/edulms/static/edulms/images/logos/google-play-badge-en.png
statici18n/edulms/images/logos/twitter-black-64px.png /app/edulms/static/edulms/images/logos/twitter-black-64px.png
statici18n/edulms/images/logos/groplay-logo-2022-100x100.png /app/edulms/static/edulms/images/logos/groplay-logo-2022-100x100.png
statici18n/edulms/images/logos/google-play-badge-sv.png /app/edulms/static/edulms/images/logos/google-play-badge-sv.png
statici18n/edulms/images/logos/play-in-browser-sv.png /app/edulms/static/edulms/images/logos/play-in-browser-sv.png
statici18n/edulms/images/logos/youtube-black-24px.png /app/edulms/static/edulms/images/logos/youtube-black-24px.png
statici18n/edulms/images/logos/impact-edtech-stage2-120px.png /app/edulms/static/edulms/images/logos/impact-edtech-stage2-120px.png
statici18n/edulms/images/logos/swedish-edtest.png /app/edulms/static/edulms/images/logos/swedish-edtest.png
statici18n/edulms/images/logos/x-black-64px.png /app/edulms/static/edulms/images/logos/x-black-64px.png
statici18n/edulms/images/flags/fr.png /app/edulms/static/edulms/images/flags/fr.png
statici18n/edulms/images/flags/sv.png /app/edulms/static/edulms/images/flags/sv.png
statici18n/edulms/images/flags/en.png /app/edulms/static/edulms/images/flags/en.png
statici18n/edulms/images/video-posters/sv.svg /app/edulms/static/edulms/images/video-posters/sv.svg
statici18n/edulms/images/video-posters/en.svg /app/edulms/static/edulms/images/video-posters/en.svg
statici18n/edulms/images/video-posters/sv.png /app/edulms/static/edulms/images/video-posters/sv.png
statici18n/edulms/images/video-posters/en.png /app/edulms/static/edulms/images/video-posters/en.png
statici18n/edulms/images/icons/lock-red-100px.png /app/edulms/static/edulms/images/icons/lock-red-100px.png
statici18n/edulms/images/icons/flag-yellow.png /app/edulms/static/edulms/images/icons/flag-yellow.png
statici18n/edulms/images/icons/external-link-alt-solid.svg /app/edulms/static/edulms/images/icons/external-link-alt-solid.svg
statici18n/edulms/images/icons/external-link-blue.png /app/edulms/static/edulms/images/icons/external-link-blue.png
statici18n/edulms/images/icons/favicon.ico /app/edulms/static/edulms/images/icons/favicon.ico
statici18n/edulms/images/icons/flag-red.png /app/edulms/static/edulms/images/icons/flag-red.png
statici18n/edulms/images/icons/flag-green.png /app/edulms/static/edulms/images/icons/flag-green.png
statici18n/edulms/images/icons/star-yellow.png /app/edulms/static/edulms/images/icons/star-yellow.png
statici18n/edulms/images/icons/circle-exclamation-red.png /app/edulms/static/edulms/images/icons/circle-exclamation-red.png
statici18n/edulms/documents/pub-avtal-en.odt /app/edulms/static/edulms/documents/pub-avtal-en.odt
statici18n/edulms/documents/instruktion_pubavtal_en.pdf /app/edulms/static/edulms/documents/instruktion_pubavtal_en.pdf
statici18n/jsi18n/en/djangojs.js /app/edulms/static/jsi18n/en/djangojs.js
statici18n/jsi18n/fr/djangojs.js /app/edulms/static/jsi18n/fr/djangojs.js
statici18n/jsi18n/sv/djangojs.js /app/edulms/static/jsi18n/sv/djangojs.js

django.contrib.staticfiles.finders.AppDirectoriesFinder (1674 files)

Path Location
debug_toolbar/js/redirect.js /app/.venv/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/redirect.js
debug_toolbar/js/utils.js /app/.venv/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/utils.js
debug_toolbar/js/history.js /app/.venv/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/history.js
debug_toolbar/js/toolbar.js /app/.venv/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js
debug_toolbar/js/timer.js /app/.venv/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/timer.js
debug_toolbar/css/print.css /app/.venv/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/css/print.css
debug_toolbar/css/toolbar.css /app/.venv/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css
modeltranslation/js/tabbed_translation_fields.js /app/.venv/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/js/tabbed_translation_fields.js
modeltranslation/js/force_jquery.js /app/.venv/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/js/force_jquery.js
modeltranslation/js/clearable_inputs.js /app/.venv/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/js/clearable_inputs.js
modeltranslation/css/tabbed_translation_fields.css /app/.venv/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/css/tabbed_translation_fields.css
autocomplete_light/autocomplete_light.min.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/autocomplete_light.min.js
autocomplete_light/autocomplete_light.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/autocomplete_light.js
autocomplete_light/i18n/te.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/te.js
autocomplete_light/i18n/is.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/is.js
autocomplete_light/i18n/nb.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/nb.js
autocomplete_light/i18n/az.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/az.js
autocomplete_light/i18n/dsb.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/dsb.js
autocomplete_light/i18n/zh-TW.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/zh-TW.js
autocomplete_light/i18n/gl.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/gl.js
autocomplete_light/i18n/sk.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/sk.js
autocomplete_light/i18n/uk.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/uk.js
autocomplete_light/i18n/af.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/af.js
autocomplete_light/i18n/fr.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/fr.js
autocomplete_light/i18n/it.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/it.js
autocomplete_light/i18n/pt-BR.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/pt-BR.js
autocomplete_light/i18n/sq.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/sq.js
autocomplete_light/i18n/eo.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/eo.js
autocomplete_light/i18n/lv.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/lv.js
autocomplete_light/i18n/da.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/da.js
autocomplete_light/i18n/nl.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/nl.js
autocomplete_light/i18n/ko.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ko.js
autocomplete_light/i18n/bs.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/bs.js
autocomplete_light/i18n/lt.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/lt.js
autocomplete_light/i18n/sv.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/sv.js
autocomplete_light/i18n/tr.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/tr.js
autocomplete_light/i18n/he.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/he.js
autocomplete_light/i18n/hy.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/hy.js
autocomplete_light/i18n/hsb.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/hsb.js
autocomplete_light/i18n/ms.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ms.js
autocomplete_light/i18n/es.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/es.js
autocomplete_light/i18n/el.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/el.js
autocomplete_light/i18n/hi.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/hi.js
autocomplete_light/i18n/sr.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/sr.js
autocomplete_light/i18n/en.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/en.js
autocomplete_light/i18n/ca.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ca.js
autocomplete_light/i18n/de.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/de.js
autocomplete_light/i18n/pt.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/pt.js
autocomplete_light/i18n/sr-Cyrl.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/sr-Cyrl.js
autocomplete_light/i18n/th.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/th.js
autocomplete_light/i18n/bn.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/bn.js
autocomplete_light/i18n/id.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/id.js
autocomplete_light/i18n/sl.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/sl.js
autocomplete_light/i18n/et.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/et.js
autocomplete_light/i18n/ro.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ro.js
autocomplete_light/i18n/fi.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/fi.js
autocomplete_light/i18n/pl.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/pl.js
autocomplete_light/i18n/fa.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/fa.js
autocomplete_light/i18n/ar.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ar.js
autocomplete_light/i18n/zh-CN.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/zh-CN.js
autocomplete_light/i18n/ne.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ne.js
autocomplete_light/i18n/cs.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/cs.js
autocomplete_light/i18n/tk.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/tk.js
autocomplete_light/i18n/ru.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ru.js
autocomplete_light/i18n/hu.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/hu.js
autocomplete_light/i18n/hr.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/hr.js
autocomplete_light/i18n/pa.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/pa.js
autocomplete_light/i18n/mk.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/mk.js
autocomplete_light/i18n/ja.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ja.js
autocomplete_light/i18n/ka.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ka.js
autocomplete_light/i18n/vi.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/vi.js
autocomplete_light/i18n/bg.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/bg.js
autocomplete_light/i18n/ps.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/ps.js
autocomplete_light/i18n/km.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/km.js
autocomplete_light/i18n/eu.js /app/.venv/lib/python3.11/site-packages/dal/static/autocomplete_light/i18n/eu.js
autocomplete_light/select2.min.js /app/.venv/lib/python3.11/site-packages/dal_select2/static/autocomplete_light/select2.min.js
autocomplete_light/select2.js /app/.venv/lib/python3.11/site-packages/dal_select2/static/autocomplete_light/select2.js
autocomplete_light/select2.css /app/.venv/lib/python3.11/site-packages/dal_select2/static/autocomplete_light/select2.css
vendor/select2/dist/css/select2.css /app/.venv/lib/python3.11/site-packages/dal_select2/static/vendor/select2/dist/css/select2.css
vendor/select2/dist/css/select2.min.css /app/.venv/lib/python3.11/site-packages/dal_select2/static/vendor/select2/dist/css/select2.min.css
admin/js/inlines.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/inlines.js
admin/js/core.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/core.js
admin/js/autocomplete.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/autocomplete.js
admin/js/actions.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/actions.js
admin/js/urlify.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/urlify.js
admin/js/popup_response.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/popup_response.js
admin/js/prepopulate_init.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js
admin/js/change_form.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/change_form.js
admin/js/SelectBox.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/SelectBox.js
admin/js/cancel.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/cancel.js
admin/js/SelectFilter2.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js
admin/js/nav_sidebar.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js
admin/js/collapse.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/collapse.js
admin/js/prepopulate.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/prepopulate.js
admin/js/calendar.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/calendar.js
admin/js/jquery.init.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/jquery.init.js
admin/js/vendor/jquery/jquery.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js
admin/js/vendor/jquery/jquery.min.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js
admin/js/vendor/jquery/LICENSE.txt /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt
admin/js/vendor/xregexp/xregexp.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js
admin/js/vendor/xregexp/LICENSE.txt /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt
admin/js/vendor/xregexp/xregexp.min.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js
admin/js/vendor/select2/select2.full.min.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js
admin/js/vendor/select2/LICENSE.md /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md
admin/js/vendor/select2/select2.full.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js
admin/js/vendor/select2/i18n/is.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js
admin/js/vendor/select2/i18n/nb.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js
admin/js/vendor/select2/i18n/az.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js
admin/js/vendor/select2/i18n/dsb.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js
admin/js/vendor/select2/i18n/zh-TW.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js
admin/js/vendor/select2/i18n/gl.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js
admin/js/vendor/select2/i18n/sk.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js
admin/js/vendor/select2/i18n/uk.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js
admin/js/vendor/select2/i18n/af.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js
admin/js/vendor/select2/i18n/fr.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js
admin/js/vendor/select2/i18n/it.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js
admin/js/vendor/select2/i18n/pt-BR.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js
admin/js/vendor/select2/i18n/sq.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js
admin/js/vendor/select2/i18n/lv.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js
admin/js/vendor/select2/i18n/da.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js
admin/js/vendor/select2/i18n/nl.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js
admin/js/vendor/select2/i18n/ko.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js
admin/js/vendor/select2/i18n/bs.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js
admin/js/vendor/select2/i18n/lt.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js
admin/js/vendor/select2/i18n/sv.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js
admin/js/vendor/select2/i18n/tr.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js
admin/js/vendor/select2/i18n/he.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js
admin/js/vendor/select2/i18n/hy.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js
admin/js/vendor/select2/i18n/hsb.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js
admin/js/vendor/select2/i18n/ms.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js
admin/js/vendor/select2/i18n/es.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js
admin/js/vendor/select2/i18n/el.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js
admin/js/vendor/select2/i18n/hi.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js
admin/js/vendor/select2/i18n/sr.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js
admin/js/vendor/select2/i18n/en.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js
admin/js/vendor/select2/i18n/ca.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js
admin/js/vendor/select2/i18n/de.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js
admin/js/vendor/select2/i18n/pt.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js
admin/js/vendor/select2/i18n/sr-Cyrl.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js
admin/js/vendor/select2/i18n/th.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js
admin/js/vendor/select2/i18n/bn.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js
admin/js/vendor/select2/i18n/id.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js
admin/js/vendor/select2/i18n/sl.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js
admin/js/vendor/select2/i18n/et.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js
admin/js/vendor/select2/i18n/ro.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js
admin/js/vendor/select2/i18n/fi.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js
admin/js/vendor/select2/i18n/pl.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js
admin/js/vendor/select2/i18n/fa.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js
admin/js/vendor/select2/i18n/ar.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js
admin/js/vendor/select2/i18n/zh-CN.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js
admin/js/vendor/select2/i18n/ne.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js
admin/js/vendor/select2/i18n/cs.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js
admin/js/vendor/select2/i18n/tk.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js
admin/js/vendor/select2/i18n/ru.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js
admin/js/vendor/select2/i18n/hu.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js
admin/js/vendor/select2/i18n/hr.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js
admin/js/vendor/select2/i18n/mk.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js
admin/js/vendor/select2/i18n/ja.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js
admin/js/vendor/select2/i18n/ka.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js
admin/js/vendor/select2/i18n/vi.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js
admin/js/vendor/select2/i18n/bg.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js
admin/js/vendor/select2/i18n/ps.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js
admin/js/vendor/select2/i18n/km.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js
admin/js/vendor/select2/i18n/eu.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js
admin/js/admin/DateTimeShortcuts.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
admin/js/admin/RelatedObjectLookups.js /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
admin/fonts/Roboto-Bold-webfont.woff /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/fonts/Roboto-Bold-webfont.woff
admin/fonts/Roboto-Regular-webfont.woff /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/fonts/Roboto-Regular-webfont.woff
admin/fonts/Roboto-Light-webfont.woff /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/fonts/Roboto-Light-webfont.woff
admin/fonts/LICENSE.txt /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/fonts/LICENSE.txt
admin/fonts/README.txt /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/fonts/README.txt
admin/css/nav_sidebar.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css
admin/css/dashboard.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/dashboard.css
admin/css/login.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/login.css
admin/css/forms.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/forms.css
admin/css/responsive_rtl.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css
admin/css/rtl.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/rtl.css
admin/css/widgets.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/widgets.css
admin/css/responsive.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/responsive.css
admin/css/fonts.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/fonts.css
admin/css/autocomplete.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/autocomplete.css
admin/css/changelists.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/changelists.css
admin/css/base.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/base.css
admin/css/vendor/select2/select2.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css
admin/css/vendor/select2/select2.min.css /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css
admin/css/vendor/select2/LICENSE-SELECT2.md /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md
admin/img/icon-addlink.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg
admin/img/tooltag-add.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg
admin/img/inline-delete.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg
admin/img/calendar-icons.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg
admin/img/tooltag-arrowright.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg
admin/img/search.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/search.svg
admin/img/icon-deletelink.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg
admin/img/icon-unknown.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg
admin/img/icon-no.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-no.svg
admin/img/icon-clock.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg
admin/img/icon-yes.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg
admin/img/icon-viewlink.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg
admin/img/icon-unknown-alt.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg
admin/img/LICENSE /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/LICENSE
admin/img/icon-alert.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg
admin/img/selector-icons.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg
admin/img/README.txt /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/README.txt
admin/img/sorting-icons.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg
admin/img/icon-changelink.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg
admin/img/icon-calendar.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg
admin/img/gis/move_vertex_off.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg
admin/img/gis/move_vertex_on.svg /app/.venv/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg
api/v2/openapi.yaml /app/api/v2/static/api/v2/openapi.yaml
edulms/images/skolon-register-2-en.png /app/edulms/static/edulms/images/skolon-register-2-en.png
edulms/images/mt-reversed.png /app/edulms/static/edulms/images/mt-reversed.png
edulms/images/mt.png /app/edulms/static/edulms/images/mt.png
edulms/images/grow-planet-email-banner-sv.jpg /app/edulms/static/edulms/images/grow-planet-email-banner-sv.jpg
edulms/images/grow-planet-email-banner-en.jpg /app/edulms/static/edulms/images/grow-planet-email-banner-en.jpg
edulms/images/skolon-register-1-sv.png /app/edulms/static/edulms/images/skolon-register-1-sv.png
edulms/images/mt-sad.png /app/edulms/static/edulms/images/mt-sad.png
edulms/images/skolon-register-1-en.png /app/edulms/static/edulms/images/skolon-register-1-en.png
edulms/images/skolon-register-2-sv.png /app/edulms/static/edulms/images/skolon-register-2-sv.png
edulms/images/logos/app-store-badge-en.png /app/edulms/static/edulms/images/logos/app-store-badge-en.png
edulms/images/logos/facebook-black-24px.png /app/edulms/static/edulms/images/logos/facebook-black-24px.png
edulms/images/logos/instagram-black-64px.png /app/edulms/static/edulms/images/logos/instagram-black-64px.png
edulms/images/logos/x-black-24px.png /app/edulms/static/edulms/images/logos/x-black-24px.png
edulms/images/logos/xedu-120px.png /app/edulms/static/edulms/images/logos/xedu-120px.png
edulms/images/logos/youtube-black-64px.png /app/edulms/static/edulms/images/logos/youtube-black-64px.png
edulms/images/logos/growplanet_logo_microsoft.png /app/edulms/static/edulms/images/logos/growplanet_logo_microsoft.png
edulms/images/logos/growplanet_logo_shadow.png /app/edulms/static/edulms/images/logos/growplanet_logo_shadow.png
edulms/images/logos/app-store-badge-sv.png /app/edulms/static/edulms/images/logos/app-store-badge-sv.png
edulms/images/logos/instagram-black-24px.png /app/edulms/static/edulms/images/logos/instagram-black-24px.png
edulms/images/logos/growplanet_logo_mt.png /app/edulms/static/edulms/images/logos/growplanet_logo_mt.png
edulms/images/logos/facebook-black-64px.png /app/edulms/static/edulms/images/logos/facebook-black-64px.png
edulms/images/logos/play-in-browser-en.png /app/edulms/static/edulms/images/logos/play-in-browser-en.png
edulms/images/logos/twitter-black-24px.png /app/edulms/static/edulms/images/logos/twitter-black-24px.png
edulms/images/logos/growplanet_logo_square.png /app/edulms/static/edulms/images/logos/growplanet_logo_square.png
edulms/images/logos/google-play-badge-en.png /app/edulms/static/edulms/images/logos/google-play-badge-en.png
edulms/images/logos/twitter-black-64px.png /app/edulms/static/edulms/images/logos/twitter-black-64px.png
edulms/images/logos/groplay-logo-2022-100x100.png /app/edulms/static/edulms/images/logos/groplay-logo-2022-100x100.png
edulms/images/logos/google-play-badge-sv.png /app/edulms/static/edulms/images/logos/google-play-badge-sv.png
edulms/images/logos/play-in-browser-sv.png /app/edulms/static/edulms/images/logos/play-in-browser-sv.png
edulms/images/logos/youtube-black-24px.png /app/edulms/static/edulms/images/logos/youtube-black-24px.png
edulms/images/logos/impact-edtech-stage2-120px.png /app/edulms/static/edulms/images/logos/impact-edtech-stage2-120px.png
edulms/images/logos/swedish-edtest.png /app/edulms/static/edulms/images/logos/swedish-edtest.png
edulms/images/logos/x-black-64px.png /app/edulms/static/edulms/images/logos/x-black-64px.png
edulms/images/flags/fr.png /app/edulms/static/edulms/images/flags/fr.png
edulms/images/flags/sv.png /app/edulms/static/edulms/images/flags/sv.png
edulms/images/flags/en.png /app/edulms/static/edulms/images/flags/en.png
edulms/images/video-posters/sv.svg /app/edulms/static/edulms/images/video-posters/sv.svg
edulms/images/video-posters/en.svg /app/edulms/static/edulms/images/video-posters/en.svg
edulms/images/video-posters/sv.png /app/edulms/static/edulms/images/video-posters/sv.png
edulms/images/video-posters/en.png /app/edulms/static/edulms/images/video-posters/en.png
edulms/images/icons/lock-red-100px.png /app/edulms/static/edulms/images/icons/lock-red-100px.png
edulms/images/icons/flag-yellow.png /app/edulms/static/edulms/images/icons/flag-yellow.png
edulms/images/icons/external-link-alt-solid.svg /app/edulms/static/edulms/images/icons/external-link-alt-solid.svg
edulms/images/icons/external-link-blue.png /app/edulms/static/edulms/images/icons/external-link-blue.png
edulms/images/icons/favicon.ico /app/edulms/static/edulms/images/icons/favicon.ico
edulms/images/icons/flag-red.png /app/edulms/static/edulms/images/icons/flag-red.png
edulms/images/icons/flag-green.png /app/edulms/static/edulms/images/icons/flag-green.png
edulms/images/icons/star-yellow.png /app/edulms/static/edulms/images/icons/star-yellow.png
edulms/images/icons/circle-exclamation-red.png /app/edulms/static/edulms/images/icons/circle-exclamation-red.png
edulms/documents/pub-avtal-en.odt /app/edulms/static/edulms/documents/pub-avtal-en.odt
edulms/documents/instruktion_pubavtal_en.pdf /app/edulms/static/edulms/documents/instruktion_pubavtal_en.pdf
jsi18n/en/djangojs.js /app/edulms/static/jsi18n/en/djangojs.js
jsi18n/fr/djangojs.js /app/edulms/static/jsi18n/fr/djangojs.js
jsi18n/sv/djangojs.js /app/edulms/static/jsi18n/sv/djangojs.js
polymorphic/js/polymorphic_inlines.js /app/.venv/lib/python3.11/site-packages/polymorphic/static/polymorphic/js/polymorphic_inlines.js
polymorphic/css/polymorphic_inlines.css /app/.venv/lib/python3.11/site-packages/polymorphic/static/polymorphic/css/polymorphic_inlines.css
rest_framework/js/csrf.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/csrf.js
rest_framework/js/prettify-min.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/prettify-min.js
rest_framework/js/coreapi-0.1.1.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/coreapi-0.1.1.js
rest_framework/js/ajax-form.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/ajax-form.js
rest_framework/js/jquery-3.5.1.min.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/jquery-3.5.1.min.js
rest_framework/js/default.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/default.js
rest_framework/js/bootstrap.min.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/bootstrap.min.js
rest_framework/fonts/fontawesome-webfont.svg /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.svg
rest_framework/fonts/fontawesome-webfont.ttf /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.ttf
rest_framework/fonts/fontawesome-webfont.eot /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.eot
rest_framework/fonts/glyphicons-halflings-regular.ttf /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.ttf
rest_framework/fonts/glyphicons-halflings-regular.svg /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.svg
rest_framework/fonts/fontawesome-webfont.woff /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.woff
rest_framework/fonts/glyphicons-halflings-regular.woff2 /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.woff2
rest_framework/fonts/glyphicons-halflings-regular.eot /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.eot
rest_framework/fonts/glyphicons-halflings-regular.woff /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.woff
rest_framework/docs/js/jquery.json-view.min.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/js/jquery.json-view.min.js
rest_framework/docs/js/highlight.pack.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/js/highlight.pack.js
rest_framework/docs/js/api.js /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/js/api.js
rest_framework/docs/css/jquery.json-view.min.css /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/css/jquery.json-view.min.css
rest_framework/docs/css/highlight.css /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/css/highlight.css
rest_framework/docs/css/base.css /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/css/base.css
rest_framework/docs/img/favicon.ico /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/img/favicon.ico
rest_framework/docs/img/grid.png /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/img/grid.png
rest_framework/css/default.css /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/default.css
rest_framework/css/prettify.css /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/prettify.css
rest_framework/css/bootstrap-theme.min.css.map /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap-theme.min.css.map
rest_framework/css/font-awesome-4.0.3.css /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/font-awesome-4.0.3.css
rest_framework/css/bootstrap-theme.min.css /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap-theme.min.css
rest_framework/css/bootstrap-tweaks.css /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap-tweaks.css
rest_framework/css/bootstrap.min.css /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap.min.css
rest_framework/css/bootstrap.min.css.map /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap.min.css.map
rest_framework/img/glyphicons-halflings.png /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/img/glyphicons-halflings.png
rest_framework/img/grid.png /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/img/grid.png
rest_framework/img/glyphicons-halflings-white.png /app/.venv/lib/python3.11/site-packages/rest_framework/static/rest_framework/img/glyphicons-halflings-white.png
django_extensions/js/jquery.bgiframe.js /app/.venv/lib/python3.11/site-packages/django_extensions/static/django_extensions/js/jquery.bgiframe.js
django_extensions/js/jquery.ajaxQueue.js /app/.venv/lib/python3.11/site-packages/django_extensions/static/django_extensions/js/jquery.ajaxQueue.js
django_extensions/js/jquery.autocomplete.js /app/.venv/lib/python3.11/site-packages/django_extensions/static/django_extensions/js/jquery.autocomplete.js
django_extensions/css/jquery.autocomplete.css /app/.venv/lib/python3.11/site-packages/django_extensions/static/django_extensions/css/jquery.autocomplete.css
django_extensions/img/indicator.gif /app/.venv/lib/python3.11/site-packages/django_extensions/static/django_extensions/img/indicator.gif
adminsortable2/js/inline-sortable.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/inline-sortable.js
adminsortable2/js/list-sortable.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/list-sortable.js
adminsortable2/js/inline-tabular.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/inline-tabular.js
adminsortable2/js/inline-stacked.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/inline-stacked.js
adminsortable2/js/plugins/admincompat.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/plugins/admincompat.js
adminsortable2/js/libs/jquery.ui.core-1.11.4.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/libs/jquery.ui.core-1.11.4.js
adminsortable2/js/libs/jquery.ui.sortable-1.11.4.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/libs/jquery.ui.sortable-1.11.4.js
adminsortable2/js/libs/jquery.ui.touch-punch.min-0.2.3.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/libs/jquery.ui.touch-punch.min-0.2.3.js
adminsortable2/js/libs/jquery.ui.core-1.7.1.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/libs/jquery.ui.core-1.7.1.js
adminsortable2/js/libs/jquery.ui.sortable-1.7.1.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/libs/jquery.ui.sortable-1.7.1.js
adminsortable2/js/libs/jquery.ui.mouse-1.11.4.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/libs/jquery.ui.mouse-1.11.4.js
adminsortable2/js/libs/jquery.ui.widget-1.11.4.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/libs/jquery.ui.widget-1.11.4.js
adminsortable2/js/libs/jquery.ui.touch-punch-0.2.3.js /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/js/libs/jquery.ui.touch-punch-0.2.3.js
adminsortable2/css/sortable.css /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/css/sortable.css
adminsortable2/icons/drag.png /app/.venv/lib/python3.11/site-packages/adminsortable2/static/adminsortable2/icons/drag.png
ckeditor/ckeditor-init.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor-init.js
ckeditor/fixups.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/fixups.js
ckeditor/ckeditor.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor.css
ckeditor/galleriffic/js/jquery.galleriffic.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/js/jquery.galleriffic.js
ckeditor/galleriffic/js/jquery.history.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/js/jquery.history.js
ckeditor/galleriffic/js/jquery.opacityrollover.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/js/jquery.opacityrollover.js
ckeditor/galleriffic/js/jquery-1.3.2.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/js/jquery-1.3.2.js
ckeditor/galleriffic/js/jush.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/js/jush.js
ckeditor/galleriffic/css/nextPageArrow.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/nextPageArrow.gif
ckeditor/galleriffic/css/galleriffic-1.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/galleriffic-1.css
ckeditor/galleriffic/css/white.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/white.css
ckeditor/galleriffic/css/basic.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/basic.css
ckeditor/galleriffic/css/galleriffic-4.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/galleriffic-4.css
ckeditor/galleriffic/css/prevPageArrowWhite.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/prevPageArrowWhite.gif
ckeditor/galleriffic/css/galleriffic-3.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/galleriffic-3.css
ckeditor/galleriffic/css/black.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/black.css
ckeditor/galleriffic/css/loaderWhite.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/loaderWhite.gif
ckeditor/galleriffic/css/jush.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/jush.css
ckeditor/galleriffic/css/nextPageArrowWhite.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/nextPageArrowWhite.gif
ckeditor/galleriffic/css/galleriffic-2.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/galleriffic-2.css
ckeditor/galleriffic/css/prevPageArrow.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/prevPageArrow.gif
ckeditor/galleriffic/css/loader.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/loader.gif
ckeditor/galleriffic/css/galleriffic-5.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/galleriffic-5.css
ckeditor/galleriffic/css/caption.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/galleriffic/css/caption.png
ckeditor/ckeditor/bender-runner.config.json /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/bender-runner.config.json
ckeditor/ckeditor/contents.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/contents.css
ckeditor/ckeditor/LICENSE.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/LICENSE.md
ckeditor/ckeditor/config.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/config.js
ckeditor/ckeditor/CHANGES.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/CHANGES.md
ckeditor/ckeditor/README.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/README.md
ckeditor/ckeditor/build-config.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/build-config.js
ckeditor/ckeditor/ckeditor.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/ckeditor.js
ckeditor/ckeditor/styles.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/styles.js
ckeditor/ckeditor/SECURITY.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/SECURITY.md
ckeditor/ckeditor/skins/moono-lisa/editor_iequirks.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/editor_iequirks.css
ckeditor/ckeditor/skins/moono-lisa/dialog_iequirks.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/dialog_iequirks.css
ckeditor/ckeditor/skins/moono-lisa/dialog_ie.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/dialog_ie.css
ckeditor/ckeditor/skins/moono-lisa/editor.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/editor.css
ckeditor/ckeditor/skins/moono-lisa/editor_ie8.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/editor_ie8.css
ckeditor/ckeditor/skins/moono-lisa/editor_ie.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/editor_ie.css
ckeditor/ckeditor/skins/moono-lisa/icons_hidpi.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/icons_hidpi.png
ckeditor/ckeditor/skins/moono-lisa/dialog.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/dialog.css
ckeditor/ckeditor/skins/moono-lisa/editor_gecko.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/editor_gecko.css
ckeditor/ckeditor/skins/moono-lisa/dialog_ie8.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/dialog_ie8.css
ckeditor/ckeditor/skins/moono-lisa/icons.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/icons.png
ckeditor/ckeditor/skins/moono-lisa/readme.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/readme.md
ckeditor/ckeditor/skins/moono-lisa/images/lock-open.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/lock-open.png
ckeditor/ckeditor/skins/moono-lisa/images/arrow.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/arrow.png
ckeditor/ckeditor/skins/moono-lisa/images/lock.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/lock.png
ckeditor/ckeditor/skins/moono-lisa/images/refresh.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/refresh.png
ckeditor/ckeditor/skins/moono-lisa/images/close.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/close.png
ckeditor/ckeditor/skins/moono-lisa/images/spinner.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/spinner.gif
ckeditor/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png
ckeditor/ckeditor/skins/moono-lisa/images/hidpi/lock.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/hidpi/lock.png
ckeditor/ckeditor/skins/moono-lisa/images/hidpi/refresh.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/hidpi/refresh.png
ckeditor/ckeditor/skins/moono-lisa/images/hidpi/close.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono-lisa/images/hidpi/close.png
ckeditor/ckeditor/skins/moono/editor_iequirks.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/editor_iequirks.css
ckeditor/ckeditor/skins/moono/dialog_iequirks.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/dialog_iequirks.css
ckeditor/ckeditor/skins/moono/dialog_ie.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/dialog_ie.css
ckeditor/ckeditor/skins/moono/editor_ie7.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/editor_ie7.css
ckeditor/ckeditor/skins/moono/editor.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/editor.css
ckeditor/ckeditor/skins/moono/editor_ie8.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/editor_ie8.css
ckeditor/ckeditor/skins/moono/editor_ie.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/editor_ie.css
ckeditor/ckeditor/skins/moono/icons_hidpi.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/icons_hidpi.png
ckeditor/ckeditor/skins/moono/dialog.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/dialog.css
ckeditor/ckeditor/skins/moono/editor_gecko.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/editor_gecko.css
ckeditor/ckeditor/skins/moono/dialog_ie8.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/dialog_ie8.css
ckeditor/ckeditor/skins/moono/icons.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/icons.png
ckeditor/ckeditor/skins/moono/dialog_ie7.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/dialog_ie7.css
ckeditor/ckeditor/skins/moono/readme.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/readme.md
ckeditor/ckeditor/skins/moono/images/lock-open.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/lock-open.png
ckeditor/ckeditor/skins/moono/images/arrow.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/arrow.png
ckeditor/ckeditor/skins/moono/images/lock.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/lock.png
ckeditor/ckeditor/skins/moono/images/refresh.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/refresh.png
ckeditor/ckeditor/skins/moono/images/close.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/close.png
ckeditor/ckeditor/skins/moono/images/spinner.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/spinner.gif
ckeditor/ckeditor/skins/moono/images/hidpi/lock-open.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/hidpi/lock-open.png
ckeditor/ckeditor/skins/moono/images/hidpi/lock.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/hidpi/lock.png
ckeditor/ckeditor/skins/moono/images/hidpi/refresh.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/hidpi/refresh.png
ckeditor/ckeditor/skins/moono/images/hidpi/close.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/skins/moono/images/hidpi/close.png
ckeditor/ckeditor/lang/is.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/is.js
ckeditor/ckeditor/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/pt-br.js
ckeditor/ckeditor/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/nb.js
ckeditor/ckeditor/lang/az.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/az.js
ckeditor/ckeditor/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/no.js
ckeditor/ckeditor/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ku.js
ckeditor/ckeditor/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/gl.js
ckeditor/ckeditor/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/fr-ca.js
ckeditor/ckeditor/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/en-gb.js
ckeditor/ckeditor/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/sk.js
ckeditor/ckeditor/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/uk.js
ckeditor/ckeditor/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/af.js
ckeditor/ckeditor/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/fr.js
ckeditor/ckeditor/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/it.js
ckeditor/ckeditor/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/sq.js
ckeditor/ckeditor/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/eo.js
ckeditor/ckeditor/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/lv.js
ckeditor/ckeditor/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/da.js
ckeditor/ckeditor/lang/fo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/fo.js
ckeditor/ckeditor/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/nl.js
ckeditor/ckeditor/lang/gu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/gu.js
ckeditor/ckeditor/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ko.js
ckeditor/ckeditor/lang/bs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/bs.js
ckeditor/ckeditor/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/lt.js
ckeditor/ckeditor/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/sv.js
ckeditor/ckeditor/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/tr.js
ckeditor/ckeditor/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/he.js
ckeditor/ckeditor/lang/ms.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ms.js
ckeditor/ckeditor/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/es.js
ckeditor/ckeditor/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/el.js
ckeditor/ckeditor/lang/hi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/hi.js
ckeditor/ckeditor/lang/oc.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/oc.js
ckeditor/ckeditor/lang/sr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/sr.js
ckeditor/ckeditor/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/en.js
ckeditor/ckeditor/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ca.js
ckeditor/ckeditor/lang/sr-latn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/sr-latn.js
ckeditor/ckeditor/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/de.js
ckeditor/ckeditor/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/pt.js
ckeditor/ckeditor/lang/th.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/th.js
ckeditor/ckeditor/lang/bn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/bn.js
ckeditor/ckeditor/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ug.js
ckeditor/ckeditor/lang/id.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/id.js
ckeditor/ckeditor/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/sl.js
ckeditor/ckeditor/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/et.js
ckeditor/ckeditor/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ro.js
ckeditor/ckeditor/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/zh-cn.js
ckeditor/ckeditor/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/fi.js
ckeditor/ckeditor/lang/en-au.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/en-au.js
ckeditor/ckeditor/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/pl.js
ckeditor/ckeditor/lang/si.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/si.js
ckeditor/ckeditor/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/fa.js
ckeditor/ckeditor/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ar.js
ckeditor/ckeditor/lang/es-mx.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/es-mx.js
ckeditor/ckeditor/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/zh.js
ckeditor/ckeditor/lang/de-ch.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/de-ch.js
ckeditor/ckeditor/lang/mn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/mn.js
ckeditor/ckeditor/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/cs.js
ckeditor/ckeditor/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ru.js
ckeditor/ckeditor/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/hu.js
ckeditor/ckeditor/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/tt.js
ckeditor/ckeditor/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/hr.js
ckeditor/ckeditor/lang/en-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/en-ca.js
ckeditor/ckeditor/lang/mk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/mk.js
ckeditor/ckeditor/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ja.js
ckeditor/ckeditor/lang/ka.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/ka.js
ckeditor/ckeditor/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/vi.js
ckeditor/ckeditor/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/bg.js
ckeditor/ckeditor/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/cy.js
ckeditor/ckeditor/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/km.js
ckeditor/ckeditor/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/lang/eu.js
ckeditor/ckeditor/vendor/promise.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/vendor/promise.js
ckeditor/ckeditor/plugins/icons_hidpi.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/icons_hidpi.png
ckeditor/ckeditor/plugins/icons.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/icons.png
ckeditor/ckeditor/plugins/divarea/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/divarea/plugin.js
ckeditor/ckeditor/plugins/notificationaggregator/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notificationaggregator/plugin.js
ckeditor/ckeditor/plugins/image/images/noimage.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image/images/noimage.png
ckeditor/ckeditor/plugins/image/dialogs/image.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image/dialogs/image.js
ckeditor/ckeditor/plugins/magicline/images/icon-rtl.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/magicline/images/icon-rtl.png
ckeditor/ckeditor/plugins/magicline/images/icon.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/magicline/images/icon.png
ckeditor/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png
ckeditor/ckeditor/plugins/magicline/images/hidpi/icon.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/magicline/images/hidpi/icon.png
ckeditor/ckeditor/plugins/widget/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/plugin.js
ckeditor/ckeditor/plugins/widget/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/pt-br.js
ckeditor/ckeditor/plugins/widget/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/nb.js
ckeditor/ckeditor/plugins/widget/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/no.js
ckeditor/ckeditor/plugins/widget/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/ku.js
ckeditor/ckeditor/plugins/widget/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/gl.js
ckeditor/ckeditor/plugins/widget/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/en-gb.js
ckeditor/ckeditor/plugins/widget/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/sk.js
ckeditor/ckeditor/plugins/widget/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/uk.js
ckeditor/ckeditor/plugins/widget/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/af.js
ckeditor/ckeditor/plugins/widget/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/fr.js
ckeditor/ckeditor/plugins/widget/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/it.js
ckeditor/ckeditor/plugins/widget/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/sq.js
ckeditor/ckeditor/plugins/widget/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/eo.js
ckeditor/ckeditor/plugins/widget/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/lv.js
ckeditor/ckeditor/plugins/widget/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/da.js
ckeditor/ckeditor/plugins/widget/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/nl.js
ckeditor/ckeditor/plugins/widget/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/ko.js
ckeditor/ckeditor/plugins/widget/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/sv.js
ckeditor/ckeditor/plugins/widget/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/tr.js
ckeditor/ckeditor/plugins/widget/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/he.js
ckeditor/ckeditor/plugins/widget/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/es.js
ckeditor/ckeditor/plugins/widget/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/el.js
ckeditor/ckeditor/plugins/widget/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/en.js
ckeditor/ckeditor/plugins/widget/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/ca.js
ckeditor/ckeditor/plugins/widget/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/de.js
ckeditor/ckeditor/plugins/widget/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/pt.js
ckeditor/ckeditor/plugins/widget/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/sl.js
ckeditor/ckeditor/plugins/widget/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/zh-cn.js
ckeditor/ckeditor/plugins/widget/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/fi.js
ckeditor/ckeditor/plugins/widget/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/pl.js
ckeditor/ckeditor/plugins/widget/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/fa.js
ckeditor/ckeditor/plugins/widget/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/ar.js
ckeditor/ckeditor/plugins/widget/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/zh.js
ckeditor/ckeditor/plugins/widget/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/cs.js
ckeditor/ckeditor/plugins/widget/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/ru.js
ckeditor/ckeditor/plugins/widget/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/hu.js
ckeditor/ckeditor/plugins/widget/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/tt.js
ckeditor/ckeditor/plugins/widget/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/hr.js
ckeditor/ckeditor/plugins/widget/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/ja.js
ckeditor/ckeditor/plugins/widget/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/vi.js
ckeditor/ckeditor/plugins/widget/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/bg.js
ckeditor/ckeditor/plugins/widget/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/cy.js
ckeditor/ckeditor/plugins/widget/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/lang/km.js
ckeditor/ckeditor/plugins/widget/images/handle.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/widget/images/handle.png
ckeditor/ckeditor/plugins/codesnippetgeshi/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippetgeshi/plugin.js
ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/az.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/az.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/af.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/da.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ko.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lt.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/oc.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/oc.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr-latn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr-latn.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ro.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-au.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-au.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tt.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js
ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eu.js
ckeditor/ckeditor/plugins/forms/images/hiddenfield.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/forms/images/hiddenfield.gif
ckeditor/ckeditor/plugins/forms/dialogs/select.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/forms/dialogs/select.js
ckeditor/ckeditor/plugins/forms/dialogs/textarea.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/forms/dialogs/textarea.js
ckeditor/ckeditor/plugins/forms/dialogs/textfield.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/forms/dialogs/textfield.js
ckeditor/ckeditor/plugins/forms/dialogs/radio.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/forms/dialogs/radio.js
ckeditor/ckeditor/plugins/forms/dialogs/button.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/forms/dialogs/button.js
ckeditor/ckeditor/plugins/forms/dialogs/checkbox.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/forms/dialogs/checkbox.js
ckeditor/ckeditor/plugins/forms/dialogs/hiddenfield.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/forms/dialogs/hiddenfield.js
ckeditor/ckeditor/plugins/forms/dialogs/form.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/forms/dialogs/form.js
ckeditor/ckeditor/plugins/showblocks/images/block_h5.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_h5.png
ckeditor/ckeditor/plugins/showblocks/images/block_h6.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_h6.png
ckeditor/ckeditor/plugins/showblocks/images/block_h4.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_h4.png
ckeditor/ckeditor/plugins/showblocks/images/block_address.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_address.png
ckeditor/ckeditor/plugins/showblocks/images/block_div.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_div.png
ckeditor/ckeditor/plugins/showblocks/images/block_h2.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_h2.png
ckeditor/ckeditor/plugins/showblocks/images/block_h1.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_h1.png
ckeditor/ckeditor/plugins/showblocks/images/block_pre.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_pre.png
ckeditor/ckeditor/plugins/showblocks/images/block_blockquote.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_blockquote.png
ckeditor/ckeditor/plugins/showblocks/images/block_h3.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_h3.png
ckeditor/ckeditor/plugins/showblocks/images/block_p.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/showblocks/images/block_p.png
ckeditor/ckeditor/plugins/adobeair/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/adobeair/plugin.js
ckeditor/ckeditor/plugins/sourcedialog/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/plugin.js
ckeditor/ckeditor/plugins/sourcedialog/lang/is.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/is.js
ckeditor/ckeditor/plugins/sourcedialog/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/pt-br.js
ckeditor/ckeditor/plugins/sourcedialog/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/nb.js
ckeditor/ckeditor/plugins/sourcedialog/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/no.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ku.js
ckeditor/ckeditor/plugins/sourcedialog/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/gl.js
ckeditor/ckeditor/plugins/sourcedialog/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/fr-ca.js
ckeditor/ckeditor/plugins/sourcedialog/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/en-gb.js
ckeditor/ckeditor/plugins/sourcedialog/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/sk.js
ckeditor/ckeditor/plugins/sourcedialog/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/uk.js
ckeditor/ckeditor/plugins/sourcedialog/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/af.js
ckeditor/ckeditor/plugins/sourcedialog/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/fr.js
ckeditor/ckeditor/plugins/sourcedialog/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/it.js
ckeditor/ckeditor/plugins/sourcedialog/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/sq.js
ckeditor/ckeditor/plugins/sourcedialog/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/eo.js
ckeditor/ckeditor/plugins/sourcedialog/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/lv.js
ckeditor/ckeditor/plugins/sourcedialog/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/da.js
ckeditor/ckeditor/plugins/sourcedialog/lang/fo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/fo.js
ckeditor/ckeditor/plugins/sourcedialog/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/nl.js
ckeditor/ckeditor/plugins/sourcedialog/lang/gu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/gu.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ko.js
ckeditor/ckeditor/plugins/sourcedialog/lang/bs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/bs.js
ckeditor/ckeditor/plugins/sourcedialog/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/lt.js
ckeditor/ckeditor/plugins/sourcedialog/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/sv.js
ckeditor/ckeditor/plugins/sourcedialog/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/tr.js
ckeditor/ckeditor/plugins/sourcedialog/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/he.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ms.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ms.js
ckeditor/ckeditor/plugins/sourcedialog/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/es.js
ckeditor/ckeditor/plugins/sourcedialog/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/el.js
ckeditor/ckeditor/plugins/sourcedialog/lang/hi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/hi.js
ckeditor/ckeditor/plugins/sourcedialog/lang/sr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/sr.js
ckeditor/ckeditor/plugins/sourcedialog/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/en.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ca.js
ckeditor/ckeditor/plugins/sourcedialog/lang/sr-latn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/sr-latn.js
ckeditor/ckeditor/plugins/sourcedialog/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/de.js
ckeditor/ckeditor/plugins/sourcedialog/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/pt.js
ckeditor/ckeditor/plugins/sourcedialog/lang/th.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/th.js
ckeditor/ckeditor/plugins/sourcedialog/lang/bn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/bn.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ug.js
ckeditor/ckeditor/plugins/sourcedialog/lang/id.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/id.js
ckeditor/ckeditor/plugins/sourcedialog/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/sl.js
ckeditor/ckeditor/plugins/sourcedialog/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/et.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ro.js
ckeditor/ckeditor/plugins/sourcedialog/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/zh-cn.js
ckeditor/ckeditor/plugins/sourcedialog/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/fi.js
ckeditor/ckeditor/plugins/sourcedialog/lang/en-au.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/en-au.js
ckeditor/ckeditor/plugins/sourcedialog/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/pl.js
ckeditor/ckeditor/plugins/sourcedialog/lang/si.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/si.js
ckeditor/ckeditor/plugins/sourcedialog/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/fa.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ar.js
ckeditor/ckeditor/plugins/sourcedialog/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/zh.js
ckeditor/ckeditor/plugins/sourcedialog/lang/mn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/mn.js
ckeditor/ckeditor/plugins/sourcedialog/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/cs.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ru.js
ckeditor/ckeditor/plugins/sourcedialog/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/hu.js
ckeditor/ckeditor/plugins/sourcedialog/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/tt.js
ckeditor/ckeditor/plugins/sourcedialog/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/hr.js
ckeditor/ckeditor/plugins/sourcedialog/lang/en-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/en-ca.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ja.js
ckeditor/ckeditor/plugins/sourcedialog/lang/ka.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/ka.js
ckeditor/ckeditor/plugins/sourcedialog/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/vi.js
ckeditor/ckeditor/plugins/sourcedialog/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/bg.js
ckeditor/ckeditor/plugins/sourcedialog/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/cy.js
ckeditor/ckeditor/plugins/sourcedialog/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/km.js
ckeditor/ckeditor/plugins/sourcedialog/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/lang/eu.js
ckeditor/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js
ckeditor/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png
ckeditor/ckeditor/plugins/sourcedialog/icons/sourcedialog.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/icons/sourcedialog.png
ckeditor/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png
ckeditor/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png
ckeditor/ckeditor/plugins/smiley/images/confused_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/confused_smile.png
ckeditor/ckeditor/plugins/smiley/images/tounge_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/tounge_smile.gif
ckeditor/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif
ckeditor/ckeditor/plugins/smiley/images/sad_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/sad_smile.png
ckeditor/ckeditor/plugins/smiley/images/envelope.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/envelope.png
ckeditor/ckeditor/plugins/smiley/images/broken_heart.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/broken_heart.png
ckeditor/ckeditor/plugins/smiley/images/teeth_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/teeth_smile.gif
ckeditor/ckeditor/plugins/smiley/images/angry_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/angry_smile.png
ckeditor/ckeditor/plugins/smiley/images/devil_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/devil_smile.gif
ckeditor/ckeditor/plugins/smiley/images/shades_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/shades_smile.gif
ckeditor/ckeditor/plugins/smiley/images/angel_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/angel_smile.png
ckeditor/ckeditor/plugins/smiley/images/heart.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/heart.gif
ckeditor/ckeditor/plugins/smiley/images/thumbs_up.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/thumbs_up.png
ckeditor/ckeditor/plugins/smiley/images/omg_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/omg_smile.gif
ckeditor/ckeditor/plugins/smiley/images/embarrassed_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/embarrassed_smile.gif
ckeditor/ckeditor/plugins/smiley/images/envelope.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/envelope.gif
ckeditor/ckeditor/plugins/smiley/images/angry_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/angry_smile.gif
ckeditor/ckeditor/plugins/smiley/images/thumbs_down.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/thumbs_down.png
ckeditor/ckeditor/plugins/smiley/images/thumbs_down.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/thumbs_down.gif
ckeditor/ckeditor/plugins/smiley/images/wink_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/wink_smile.gif
ckeditor/ckeditor/plugins/smiley/images/cry_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/cry_smile.png
ckeditor/ckeditor/plugins/smiley/images/tongue_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/tongue_smile.gif
ckeditor/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png
ckeditor/ckeditor/plugins/smiley/images/broken_heart.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/broken_heart.gif
ckeditor/ckeditor/plugins/smiley/images/tongue_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/tongue_smile.png
ckeditor/ckeditor/plugins/smiley/images/embarrassed_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/embarrassed_smile.png
ckeditor/ckeditor/plugins/smiley/images/thumbs_up.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/thumbs_up.gif
ckeditor/ckeditor/plugins/smiley/images/shades_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/shades_smile.png
ckeditor/ckeditor/plugins/smiley/images/heart.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/heart.png
ckeditor/ckeditor/plugins/smiley/images/teeth_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/teeth_smile.png
ckeditor/ckeditor/plugins/smiley/images/regular_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/regular_smile.gif
ckeditor/ckeditor/plugins/smiley/images/cry_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/cry_smile.gif
ckeditor/ckeditor/plugins/smiley/images/lightbulb.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/lightbulb.gif
ckeditor/ckeditor/plugins/smiley/images/angel_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/angel_smile.gif
ckeditor/ckeditor/plugins/smiley/images/embaressed_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/embaressed_smile.gif
ckeditor/ckeditor/plugins/smiley/images/kiss.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/kiss.gif
ckeditor/ckeditor/plugins/smiley/images/confused_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/confused_smile.gif
ckeditor/ckeditor/plugins/smiley/images/lightbulb.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/lightbulb.png
ckeditor/ckeditor/plugins/smiley/images/kiss.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/kiss.png
ckeditor/ckeditor/plugins/smiley/images/omg_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/omg_smile.png
ckeditor/ckeditor/plugins/smiley/images/devil_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/devil_smile.png
ckeditor/ckeditor/plugins/smiley/images/sad_smile.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/sad_smile.gif
ckeditor/ckeditor/plugins/smiley/images/regular_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/regular_smile.png
ckeditor/ckeditor/plugins/smiley/images/wink_smile.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/images/wink_smile.png
ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js
ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.css
ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.js
ckeditor/ckeditor/plugins/iframe/images/placeholder.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/iframe/images/placeholder.png
ckeditor/ckeditor/plugins/iframe/dialogs/iframe.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/iframe/dialogs/iframe.js
ckeditor/ckeditor/plugins/mathjax/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/plugin.js
ckeditor/ckeditor/plugins/mathjax/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/pt-br.js
ckeditor/ckeditor/plugins/mathjax/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/nb.js
ckeditor/ckeditor/plugins/mathjax/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/no.js
ckeditor/ckeditor/plugins/mathjax/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/ku.js
ckeditor/ckeditor/plugins/mathjax/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/gl.js
ckeditor/ckeditor/plugins/mathjax/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/en-gb.js
ckeditor/ckeditor/plugins/mathjax/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/sk.js
ckeditor/ckeditor/plugins/mathjax/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/uk.js
ckeditor/ckeditor/plugins/mathjax/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/af.js
ckeditor/ckeditor/plugins/mathjax/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/fr.js
ckeditor/ckeditor/plugins/mathjax/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/it.js
ckeditor/ckeditor/plugins/mathjax/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/sq.js
ckeditor/ckeditor/plugins/mathjax/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/eo.js
ckeditor/ckeditor/plugins/mathjax/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/da.js
ckeditor/ckeditor/plugins/mathjax/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/nl.js
ckeditor/ckeditor/plugins/mathjax/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/ko.js
ckeditor/ckeditor/plugins/mathjax/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/lt.js
ckeditor/ckeditor/plugins/mathjax/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/sv.js
ckeditor/ckeditor/plugins/mathjax/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/tr.js
ckeditor/ckeditor/plugins/mathjax/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/he.js
ckeditor/ckeditor/plugins/mathjax/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/es.js
ckeditor/ckeditor/plugins/mathjax/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/el.js
ckeditor/ckeditor/plugins/mathjax/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/en.js
ckeditor/ckeditor/plugins/mathjax/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/ca.js
ckeditor/ckeditor/plugins/mathjax/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/de.js
ckeditor/ckeditor/plugins/mathjax/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/pt.js
ckeditor/ckeditor/plugins/mathjax/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/sl.js
ckeditor/ckeditor/plugins/mathjax/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/ro.js
ckeditor/ckeditor/plugins/mathjax/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/zh-cn.js
ckeditor/ckeditor/plugins/mathjax/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/fi.js
ckeditor/ckeditor/plugins/mathjax/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/pl.js
ckeditor/ckeditor/plugins/mathjax/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/fa.js
ckeditor/ckeditor/plugins/mathjax/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/ar.js
ckeditor/ckeditor/plugins/mathjax/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/zh.js
ckeditor/ckeditor/plugins/mathjax/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/cs.js
ckeditor/ckeditor/plugins/mathjax/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/ru.js
ckeditor/ckeditor/plugins/mathjax/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/hu.js
ckeditor/ckeditor/plugins/mathjax/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/tt.js
ckeditor/ckeditor/plugins/mathjax/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/hr.js
ckeditor/ckeditor/plugins/mathjax/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/ja.js
ckeditor/ckeditor/plugins/mathjax/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/vi.js
ckeditor/ckeditor/plugins/mathjax/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/bg.js
ckeditor/ckeditor/plugins/mathjax/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/cy.js
ckeditor/ckeditor/plugins/mathjax/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/lang/km.js
ckeditor/ckeditor/plugins/mathjax/images/loader.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/images/loader.gif
ckeditor/ckeditor/plugins/mathjax/dialogs/mathjax.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/dialogs/mathjax.js
ckeditor/ckeditor/plugins/mathjax/icons/mathjax.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/icons/mathjax.png
ckeditor/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png
ckeditor/ckeditor/plugins/uploadimage/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadimage/plugin.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/az.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/az.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/no.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/af.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/it.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/da.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/he.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/es.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/el.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/oc.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/oc.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/de.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/th.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/th.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/id.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/id.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/et.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en-au.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en-au.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/si.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/si.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/es-mx.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/es-mx.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/km.js
ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js
ckeditor/ckeditor/plugins/pastefromlibreoffice/filter/default.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/pastefromlibreoffice/filter/default.js
ckeditor/ckeditor/plugins/uploadwidget/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/plugin.js
ckeditor/ckeditor/plugins/uploadwidget/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/pt-br.js
ckeditor/ckeditor/plugins/uploadwidget/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/nb.js
ckeditor/ckeditor/plugins/uploadwidget/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/ku.js
ckeditor/ckeditor/plugins/uploadwidget/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/gl.js
ckeditor/ckeditor/plugins/uploadwidget/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/fr.js
ckeditor/ckeditor/plugins/uploadwidget/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/it.js
ckeditor/ckeditor/plugins/uploadwidget/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/eo.js
ckeditor/ckeditor/plugins/uploadwidget/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/da.js
ckeditor/ckeditor/plugins/uploadwidget/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/nl.js
ckeditor/ckeditor/plugins/uploadwidget/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/ko.js
ckeditor/ckeditor/plugins/uploadwidget/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/sv.js
ckeditor/ckeditor/plugins/uploadwidget/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/tr.js
ckeditor/ckeditor/plugins/uploadwidget/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/en.js
ckeditor/ckeditor/plugins/uploadwidget/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/de.js
ckeditor/ckeditor/plugins/uploadwidget/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/zh-cn.js
ckeditor/ckeditor/plugins/uploadwidget/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/pl.js
ckeditor/ckeditor/plugins/uploadwidget/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/zh.js
ckeditor/ckeditor/plugins/uploadwidget/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/cs.js
ckeditor/ckeditor/plugins/uploadwidget/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/ru.js
ckeditor/ckeditor/plugins/uploadwidget/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uploadwidget/lang/hu.js
ckeditor/ckeditor/plugins/link/images/anchor.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/link/images/anchor.png
ckeditor/ckeditor/plugins/link/images/hidpi/anchor.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/link/images/hidpi/anchor.png
ckeditor/ckeditor/plugins/link/dialogs/link.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/link/dialogs/link.js
ckeditor/ckeditor/plugins/link/dialogs/anchor.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/link/dialogs/anchor.js
ckeditor/ckeditor/plugins/exportpdf/LICENSE.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/LICENSE.md
ckeditor/ckeditor/plugins/exportpdf/README.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/README.md
ckeditor/ckeditor/plugins/exportpdf/CHANGELOG.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/CHANGELOG.md
ckeditor/ckeditor/plugins/exportpdf/plugindefinition.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/plugindefinition.js
ckeditor/ckeditor/plugins/exportpdf/tests/statistics.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/statistics.js
ckeditor/ckeditor/plugins/exportpdf/tests/exportpdf.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/exportpdf.js
ckeditor/ckeditor/plugins/exportpdf/tests/resourcespaths.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/resourcespaths.js
ckeditor/ckeditor/plugins/exportpdf/tests/notification.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/notification.js
ckeditor/ckeditor/plugins/exportpdf/tests/authentication.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/authentication.js
ckeditor/ckeditor/plugins/exportpdf/tests/stylesheets.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/stylesheets.js
ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/readonly.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/readonly.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/notificationsasync.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/notificationsasync.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/notifications.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/notifications.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/integration.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/integration.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/notifications.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/notifications.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/integration.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/integration.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/configfilename.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/configfilename.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/stylesheets.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/stylesheets.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/readonly.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/readonly.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/emptyeditor.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/emptyeditor.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/notificationsasync.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/notificationsasync.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/configfilename.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/configfilename.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/emptyeditor.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/emptyeditor.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/stylesheets.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/stylesheets.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/paperformat.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/paperformat.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/paperformat.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/paperformat.html
ckeditor/ckeditor/plugins/exportpdf/tests/manual/integrations/easyimage.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/integrations/easyimage.md
ckeditor/ckeditor/plugins/exportpdf/tests/manual/integrations/easyimage.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/manual/integrations/easyimage.html
ckeditor/ckeditor/plugins/exportpdf/tests/_helpers/tools.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/exportpdf/tests/_helpers/tools.js
ckeditor/ckeditor/plugins/language/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/plugin.js
ckeditor/ckeditor/plugins/language/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/pt-br.js
ckeditor/ckeditor/plugins/language/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/nb.js
ckeditor/ckeditor/plugins/language/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/no.js
ckeditor/ckeditor/plugins/language/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/ku.js
ckeditor/ckeditor/plugins/language/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/gl.js
ckeditor/ckeditor/plugins/language/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/en-gb.js
ckeditor/ckeditor/plugins/language/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/sk.js
ckeditor/ckeditor/plugins/language/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/uk.js
ckeditor/ckeditor/plugins/language/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/fr.js
ckeditor/ckeditor/plugins/language/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/it.js
ckeditor/ckeditor/plugins/language/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/sq.js
ckeditor/ckeditor/plugins/language/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/eo.js
ckeditor/ckeditor/plugins/language/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/da.js
ckeditor/ckeditor/plugins/language/lang/fo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/fo.js
ckeditor/ckeditor/plugins/language/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/nl.js
ckeditor/ckeditor/plugins/language/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/ko.js
ckeditor/ckeditor/plugins/language/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/sv.js
ckeditor/ckeditor/plugins/language/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/tr.js
ckeditor/ckeditor/plugins/language/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/he.js
ckeditor/ckeditor/plugins/language/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/es.js
ckeditor/ckeditor/plugins/language/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/el.js
ckeditor/ckeditor/plugins/language/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/en.js
ckeditor/ckeditor/plugins/language/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/ca.js
ckeditor/ckeditor/plugins/language/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/de.js
ckeditor/ckeditor/plugins/language/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/pt.js
ckeditor/ckeditor/plugins/language/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/sl.js
ckeditor/ckeditor/plugins/language/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/zh-cn.js
ckeditor/ckeditor/plugins/language/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/fi.js
ckeditor/ckeditor/plugins/language/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/pl.js
ckeditor/ckeditor/plugins/language/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/fa.js
ckeditor/ckeditor/plugins/language/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/ar.js
ckeditor/ckeditor/plugins/language/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/zh.js
ckeditor/ckeditor/plugins/language/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/cs.js
ckeditor/ckeditor/plugins/language/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/ru.js
ckeditor/ckeditor/plugins/language/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/hu.js
ckeditor/ckeditor/plugins/language/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/tt.js
ckeditor/ckeditor/plugins/language/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/hr.js
ckeditor/ckeditor/plugins/language/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/ja.js
ckeditor/ckeditor/plugins/language/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/vi.js
ckeditor/ckeditor/plugins/language/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/bg.js
ckeditor/ckeditor/plugins/language/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/cy.js
ckeditor/ckeditor/plugins/language/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/lang/km.js
ckeditor/ckeditor/plugins/language/icons/language.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/icons/language.png
ckeditor/ckeditor/plugins/language/icons/hidpi/language.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/language/icons/hidpi/language.png
ckeditor/ckeditor/plugins/sharedspace/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/sharedspace/plugin.js
ckeditor/ckeditor/plugins/pastefromgdocs/filter/default.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/pastefromgdocs/filter/default.js
ckeditor/ckeditor/plugins/autogrow/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autogrow/plugin.js
ckeditor/ckeditor/plugins/templates/templatedefinition.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/templates/templatedefinition.js
ckeditor/ckeditor/plugins/templates/templates/default.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/templates/templates/default.js
ckeditor/ckeditor/plugins/templates/templates/images/template1.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/templates/templates/images/template1.gif
ckeditor/ckeditor/plugins/templates/templates/images/template3.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/templates/templates/images/template3.gif
ckeditor/ckeditor/plugins/templates/templates/images/template2.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/templates/templates/images/template2.gif
ckeditor/ckeditor/plugins/templates/dialogs/templates.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/templates/dialogs/templates.js
ckeditor/ckeditor/plugins/templates/dialogs/templates.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/templates/dialogs/templates.css
ckeditor/ckeditor/plugins/filetools/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/plugin.js
ckeditor/ckeditor/plugins/filetools/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/pt-br.js
ckeditor/ckeditor/plugins/filetools/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/nb.js
ckeditor/ckeditor/plugins/filetools/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/ku.js
ckeditor/ckeditor/plugins/filetools/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/gl.js
ckeditor/ckeditor/plugins/filetools/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/fr.js
ckeditor/ckeditor/plugins/filetools/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/it.js
ckeditor/ckeditor/plugins/filetools/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/eo.js
ckeditor/ckeditor/plugins/filetools/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/da.js
ckeditor/ckeditor/plugins/filetools/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/nl.js
ckeditor/ckeditor/plugins/filetools/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/ko.js
ckeditor/ckeditor/plugins/filetools/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/sv.js
ckeditor/ckeditor/plugins/filetools/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/tr.js
ckeditor/ckeditor/plugins/filetools/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/en.js
ckeditor/ckeditor/plugins/filetools/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/de.js
ckeditor/ckeditor/plugins/filetools/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/zh-cn.js
ckeditor/ckeditor/plugins/filetools/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/pl.js
ckeditor/ckeditor/plugins/filetools/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/zh.js
ckeditor/ckeditor/plugins/filetools/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/cs.js
ckeditor/ckeditor/plugins/filetools/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/filetools/lang/ru.js
ckeditor/ckeditor/plugins/autoembed/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/plugin.js
ckeditor/ckeditor/plugins/autoembed/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/pt-br.js
ckeditor/ckeditor/plugins/autoembed/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/nb.js
ckeditor/ckeditor/plugins/autoembed/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/ku.js
ckeditor/ckeditor/plugins/autoembed/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/it.js
ckeditor/ckeditor/plugins/autoembed/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/tr.js
ckeditor/ckeditor/plugins/autoembed/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/en.js
ckeditor/ckeditor/plugins/autoembed/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/de.js
ckeditor/ckeditor/plugins/autoembed/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/pl.js
ckeditor/ckeditor/plugins/autoembed/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/zh.js
ckeditor/ckeditor/plugins/autoembed/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autoembed/lang/cs.js
ckeditor/ckeditor/plugins/embedbase/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/plugin.js
ckeditor/ckeditor/plugins/embedbase/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/pt-br.js
ckeditor/ckeditor/plugins/embedbase/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/nb.js
ckeditor/ckeditor/plugins/embedbase/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/ku.js
ckeditor/ckeditor/plugins/embedbase/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/gl.js
ckeditor/ckeditor/plugins/embedbase/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/fr.js
ckeditor/ckeditor/plugins/embedbase/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/it.js
ckeditor/ckeditor/plugins/embedbase/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/eo.js
ckeditor/ckeditor/plugins/embedbase/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/da.js
ckeditor/ckeditor/plugins/embedbase/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/nl.js
ckeditor/ckeditor/plugins/embedbase/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/ko.js
ckeditor/ckeditor/plugins/embedbase/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/sv.js
ckeditor/ckeditor/plugins/embedbase/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/tr.js
ckeditor/ckeditor/plugins/embedbase/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/en.js
ckeditor/ckeditor/plugins/embedbase/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/de.js
ckeditor/ckeditor/plugins/embedbase/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/zh-cn.js
ckeditor/ckeditor/plugins/embedbase/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/pl.js
ckeditor/ckeditor/plugins/embedbase/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/zh.js
ckeditor/ckeditor/plugins/embedbase/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/cs.js
ckeditor/ckeditor/plugins/embedbase/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/lang/ru.js
ckeditor/ckeditor/plugins/embedbase/dialogs/embedbase.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedbase/dialogs/embedbase.js
ckeditor/ckeditor/plugins/pagebreak/images/pagebreak.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/pagebreak/images/pagebreak.gif
ckeditor/ckeditor/plugins/about/dialogs/about.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/about/dialogs/about.js
ckeditor/ckeditor/plugins/about/dialogs/logo_ckeditor.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/about/dialogs/logo_ckeditor.png
ckeditor/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png
ckeditor/ckeditor/plugins/pastetools/filter/common.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/pastetools/filter/common.js
ckeditor/ckeditor/plugins/pastetools/filter/image.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/pastetools/filter/image.js
ckeditor/ckeditor/plugins/embedsemantic/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedsemantic/plugin.js
ckeditor/ckeditor/plugins/embedsemantic/icons/embedsemantic.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedsemantic/icons/embedsemantic.png
ckeditor/ckeditor/plugins/embedsemantic/icons/hidpi/embedsemantic.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embedsemantic/icons/hidpi/embedsemantic.png
ckeditor/ckeditor/plugins/wsc/LICENSE.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/LICENSE.md
ckeditor/ckeditor/plugins/wsc/README.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/README.md
ckeditor/ckeditor/plugins/wsc/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/plugin.js
ckeditor/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css
ckeditor/ckeditor/plugins/wsc/lang/is.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/is.js
ckeditor/ckeditor/plugins/wsc/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/pt-br.js
ckeditor/ckeditor/plugins/wsc/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/nb.js
ckeditor/ckeditor/plugins/wsc/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/no.js
ckeditor/ckeditor/plugins/wsc/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ku.js
ckeditor/ckeditor/plugins/wsc/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/gl.js
ckeditor/ckeditor/plugins/wsc/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/fr-ca.js
ckeditor/ckeditor/plugins/wsc/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/en-gb.js
ckeditor/ckeditor/plugins/wsc/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/sk.js
ckeditor/ckeditor/plugins/wsc/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/uk.js
ckeditor/ckeditor/plugins/wsc/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/af.js
ckeditor/ckeditor/plugins/wsc/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/fr.js
ckeditor/ckeditor/plugins/wsc/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/it.js
ckeditor/ckeditor/plugins/wsc/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/eo.js
ckeditor/ckeditor/plugins/wsc/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/lv.js
ckeditor/ckeditor/plugins/wsc/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/da.js
ckeditor/ckeditor/plugins/wsc/lang/fo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/fo.js
ckeditor/ckeditor/plugins/wsc/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/nl.js
ckeditor/ckeditor/plugins/wsc/lang/gu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/gu.js
ckeditor/ckeditor/plugins/wsc/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ko.js
ckeditor/ckeditor/plugins/wsc/lang/bs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/bs.js
ckeditor/ckeditor/plugins/wsc/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/lt.js
ckeditor/ckeditor/plugins/wsc/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/sv.js
ckeditor/ckeditor/plugins/wsc/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/tr.js
ckeditor/ckeditor/plugins/wsc/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/he.js
ckeditor/ckeditor/plugins/wsc/lang/ms.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ms.js
ckeditor/ckeditor/plugins/wsc/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/es.js
ckeditor/ckeditor/plugins/wsc/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/el.js
ckeditor/ckeditor/plugins/wsc/lang/hi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/hi.js
ckeditor/ckeditor/plugins/wsc/lang/sr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/sr.js
ckeditor/ckeditor/plugins/wsc/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/en.js
ckeditor/ckeditor/plugins/wsc/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ca.js
ckeditor/ckeditor/plugins/wsc/lang/sr-latn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/sr-latn.js
ckeditor/ckeditor/plugins/wsc/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/de.js
ckeditor/ckeditor/plugins/wsc/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/pt.js
ckeditor/ckeditor/plugins/wsc/lang/th.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/th.js
ckeditor/ckeditor/plugins/wsc/lang/bn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/bn.js
ckeditor/ckeditor/plugins/wsc/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ug.js
ckeditor/ckeditor/plugins/wsc/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/sl.js
ckeditor/ckeditor/plugins/wsc/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/et.js
ckeditor/ckeditor/plugins/wsc/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ro.js
ckeditor/ckeditor/plugins/wsc/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/zh-cn.js
ckeditor/ckeditor/plugins/wsc/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/fi.js
ckeditor/ckeditor/plugins/wsc/lang/en-au.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/en-au.js
ckeditor/ckeditor/plugins/wsc/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/pl.js
ckeditor/ckeditor/plugins/wsc/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/fa.js
ckeditor/ckeditor/plugins/wsc/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ar.js
ckeditor/ckeditor/plugins/wsc/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/zh.js
ckeditor/ckeditor/plugins/wsc/lang/mn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/mn.js
ckeditor/ckeditor/plugins/wsc/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/cs.js
ckeditor/ckeditor/plugins/wsc/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ru.js
ckeditor/ckeditor/plugins/wsc/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/hu.js
ckeditor/ckeditor/plugins/wsc/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/hr.js
ckeditor/ckeditor/plugins/wsc/lang/en-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/en-ca.js
ckeditor/ckeditor/plugins/wsc/lang/mk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/mk.js
ckeditor/ckeditor/plugins/wsc/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ja.js
ckeditor/ckeditor/plugins/wsc/lang/ka.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/ka.js
ckeditor/ckeditor/plugins/wsc/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/vi.js
ckeditor/ckeditor/plugins/wsc/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/bg.js
ckeditor/ckeditor/plugins/wsc/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/cy.js
ckeditor/ckeditor/plugins/wsc/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/km.js
ckeditor/ckeditor/plugins/wsc/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/lang/eu.js
ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js
ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html
ckeditor/ckeditor/plugins/wsc/dialogs/wsc_ie.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/dialogs/wsc_ie.js
ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css
ckeditor/ckeditor/plugins/wsc/icons/spellchecker.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/icons/spellchecker.png
ckeditor/ckeditor/plugins/wsc/icons/hidpi/spellchecker.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/wsc/icons/hidpi/spellchecker.png
ckeditor/ckeditor/plugins/tabletools/dialogs/tableCell.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/tabletools/dialogs/tableCell.js
ckeditor/ckeditor/plugins/div/dialogs/div.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/div/dialogs/div.js
ckeditor/ckeditor/plugins/bbcode/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/bbcode/plugin.js
ckeditor/ckeditor/plugins/ajax/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/ajax/plugin.js
ckeditor/ckeditor/plugins/liststyle/dialogs/liststyle.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/liststyle/dialogs/liststyle.js
ckeditor/ckeditor/plugins/xml/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/xml/plugin.js
ckeditor/ckeditor/plugins/uicolor/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/plugin.js
ckeditor/ckeditor/plugins/uicolor/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/pt-br.js
ckeditor/ckeditor/plugins/uicolor/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/nb.js
ckeditor/ckeditor/plugins/uicolor/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/no.js
ckeditor/ckeditor/plugins/uicolor/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/ku.js
ckeditor/ckeditor/plugins/uicolor/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/gl.js
ckeditor/ckeditor/plugins/uicolor/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/fr-ca.js
ckeditor/ckeditor/plugins/uicolor/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/en-gb.js
ckeditor/ckeditor/plugins/uicolor/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/sk.js
ckeditor/ckeditor/plugins/uicolor/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/uk.js
ckeditor/ckeditor/plugins/uicolor/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/af.js
ckeditor/ckeditor/plugins/uicolor/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/fr.js
ckeditor/ckeditor/plugins/uicolor/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/it.js
ckeditor/ckeditor/plugins/uicolor/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/sq.js
ckeditor/ckeditor/plugins/uicolor/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/eo.js
ckeditor/ckeditor/plugins/uicolor/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/lv.js
ckeditor/ckeditor/plugins/uicolor/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/da.js
ckeditor/ckeditor/plugins/uicolor/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/nl.js
ckeditor/ckeditor/plugins/uicolor/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/ko.js
ckeditor/ckeditor/plugins/uicolor/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/sv.js
ckeditor/ckeditor/plugins/uicolor/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/tr.js
ckeditor/ckeditor/plugins/uicolor/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/he.js
ckeditor/ckeditor/plugins/uicolor/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/es.js
ckeditor/ckeditor/plugins/uicolor/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/el.js
ckeditor/ckeditor/plugins/uicolor/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/en.js
ckeditor/ckeditor/plugins/uicolor/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/ca.js
ckeditor/ckeditor/plugins/uicolor/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/de.js
ckeditor/ckeditor/plugins/uicolor/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/pt.js
ckeditor/ckeditor/plugins/uicolor/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/ug.js
ckeditor/ckeditor/plugins/uicolor/lang/id.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/id.js
ckeditor/ckeditor/plugins/uicolor/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/sl.js
ckeditor/ckeditor/plugins/uicolor/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/et.js
ckeditor/ckeditor/plugins/uicolor/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/zh-cn.js
ckeditor/ckeditor/plugins/uicolor/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/fi.js
ckeditor/ckeditor/plugins/uicolor/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/pl.js
ckeditor/ckeditor/plugins/uicolor/lang/si.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/si.js
ckeditor/ckeditor/plugins/uicolor/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/fa.js
ckeditor/ckeditor/plugins/uicolor/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/ar.js
ckeditor/ckeditor/plugins/uicolor/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/zh.js
ckeditor/ckeditor/plugins/uicolor/lang/_translationstatus.txt /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/_translationstatus.txt
ckeditor/ckeditor/plugins/uicolor/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/cs.js
ckeditor/ckeditor/plugins/uicolor/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/ru.js
ckeditor/ckeditor/plugins/uicolor/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/hu.js
ckeditor/ckeditor/plugins/uicolor/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/tt.js
ckeditor/ckeditor/plugins/uicolor/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/hr.js
ckeditor/ckeditor/plugins/uicolor/lang/mk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/mk.js
ckeditor/ckeditor/plugins/uicolor/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/ja.js
ckeditor/ckeditor/plugins/uicolor/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/vi.js
ckeditor/ckeditor/plugins/uicolor/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/bg.js
ckeditor/ckeditor/plugins/uicolor/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/cy.js
ckeditor/ckeditor/plugins/uicolor/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/km.js
ckeditor/ckeditor/plugins/uicolor/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/lang/eu.js
ckeditor/ckeditor/plugins/uicolor/yui/yui.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/yui/yui.js
ckeditor/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png
ckeditor/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png
ckeditor/ckeditor/plugins/uicolor/yui/assets/picker_mask.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/yui/assets/picker_mask.png
ckeditor/ckeditor/plugins/uicolor/yui/assets/hue_bg.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/yui/assets/hue_bg.png
ckeditor/ckeditor/plugins/uicolor/yui/assets/yui.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/yui/assets/yui.css
ckeditor/ckeditor/plugins/uicolor/dialogs/uicolor.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/dialogs/uicolor.js
ckeditor/ckeditor/plugins/uicolor/icons/uicolor.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/icons/uicolor.png
ckeditor/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png
ckeditor/ckeditor/plugins/docprops/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/plugin.js
ckeditor/ckeditor/plugins/docprops/lang/is.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/is.js
ckeditor/ckeditor/plugins/docprops/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/pt-br.js
ckeditor/ckeditor/plugins/docprops/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/nb.js
ckeditor/ckeditor/plugins/docprops/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/no.js
ckeditor/ckeditor/plugins/docprops/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ku.js
ckeditor/ckeditor/plugins/docprops/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/gl.js
ckeditor/ckeditor/plugins/docprops/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/fr-ca.js
ckeditor/ckeditor/plugins/docprops/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/en-gb.js
ckeditor/ckeditor/plugins/docprops/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/sk.js
ckeditor/ckeditor/plugins/docprops/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/uk.js
ckeditor/ckeditor/plugins/docprops/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/af.js
ckeditor/ckeditor/plugins/docprops/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/fr.js
ckeditor/ckeditor/plugins/docprops/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/it.js
ckeditor/ckeditor/plugins/docprops/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/sq.js
ckeditor/ckeditor/plugins/docprops/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/eo.js
ckeditor/ckeditor/plugins/docprops/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/lv.js
ckeditor/ckeditor/plugins/docprops/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/da.js
ckeditor/ckeditor/plugins/docprops/lang/fo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/fo.js
ckeditor/ckeditor/plugins/docprops/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/nl.js
ckeditor/ckeditor/plugins/docprops/lang/gu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/gu.js
ckeditor/ckeditor/plugins/docprops/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ko.js
ckeditor/ckeditor/plugins/docprops/lang/bs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/bs.js
ckeditor/ckeditor/plugins/docprops/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/lt.js
ckeditor/ckeditor/plugins/docprops/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/sv.js
ckeditor/ckeditor/plugins/docprops/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/tr.js
ckeditor/ckeditor/plugins/docprops/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/he.js
ckeditor/ckeditor/plugins/docprops/lang/ms.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ms.js
ckeditor/ckeditor/plugins/docprops/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/es.js
ckeditor/ckeditor/plugins/docprops/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/el.js
ckeditor/ckeditor/plugins/docprops/lang/hi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/hi.js
ckeditor/ckeditor/plugins/docprops/lang/sr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/sr.js
ckeditor/ckeditor/plugins/docprops/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/en.js
ckeditor/ckeditor/plugins/docprops/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ca.js
ckeditor/ckeditor/plugins/docprops/lang/sr-latn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/sr-latn.js
ckeditor/ckeditor/plugins/docprops/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/de.js
ckeditor/ckeditor/plugins/docprops/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/pt.js
ckeditor/ckeditor/plugins/docprops/lang/th.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/th.js
ckeditor/ckeditor/plugins/docprops/lang/bn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/bn.js
ckeditor/ckeditor/plugins/docprops/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ug.js
ckeditor/ckeditor/plugins/docprops/lang/id.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/id.js
ckeditor/ckeditor/plugins/docprops/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/sl.js
ckeditor/ckeditor/plugins/docprops/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/et.js
ckeditor/ckeditor/plugins/docprops/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ro.js
ckeditor/ckeditor/plugins/docprops/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/zh-cn.js
ckeditor/ckeditor/plugins/docprops/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/fi.js
ckeditor/ckeditor/plugins/docprops/lang/en-au.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/en-au.js
ckeditor/ckeditor/plugins/docprops/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/pl.js
ckeditor/ckeditor/plugins/docprops/lang/si.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/si.js
ckeditor/ckeditor/plugins/docprops/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/fa.js
ckeditor/ckeditor/plugins/docprops/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ar.js
ckeditor/ckeditor/plugins/docprops/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/zh.js
ckeditor/ckeditor/plugins/docprops/lang/mn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/mn.js
ckeditor/ckeditor/plugins/docprops/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/cs.js
ckeditor/ckeditor/plugins/docprops/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ru.js
ckeditor/ckeditor/plugins/docprops/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/hu.js
ckeditor/ckeditor/plugins/docprops/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/tt.js
ckeditor/ckeditor/plugins/docprops/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/hr.js
ckeditor/ckeditor/plugins/docprops/lang/en-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/en-ca.js
ckeditor/ckeditor/plugins/docprops/lang/mk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/mk.js
ckeditor/ckeditor/plugins/docprops/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ja.js
ckeditor/ckeditor/plugins/docprops/lang/ka.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/ka.js
ckeditor/ckeditor/plugins/docprops/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/vi.js
ckeditor/ckeditor/plugins/docprops/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/bg.js
ckeditor/ckeditor/plugins/docprops/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/cy.js
ckeditor/ckeditor/plugins/docprops/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/km.js
ckeditor/ckeditor/plugins/docprops/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/lang/eu.js
ckeditor/ckeditor/plugins/docprops/dialogs/docprops.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/dialogs/docprops.js
ckeditor/ckeditor/plugins/docprops/icons/docprops.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/icons/docprops.png
ckeditor/ckeditor/plugins/docprops/icons/docprops-rtl.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/icons/docprops-rtl.png
ckeditor/ckeditor/plugins/docprops/icons/hidpi/docprops.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/icons/hidpi/docprops.png
ckeditor/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png
ckeditor/ckeditor/plugins/flash/images/placeholder.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/flash/images/placeholder.png
ckeditor/ckeditor/plugins/flash/dialogs/flash.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/flash/dialogs/flash.js
ckeditor/ckeditor/plugins/image2/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/plugin.js
ckeditor/ckeditor/plugins/image2/lang/is.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/is.js
ckeditor/ckeditor/plugins/image2/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/pt-br.js
ckeditor/ckeditor/plugins/image2/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/nb.js
ckeditor/ckeditor/plugins/image2/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/no.js
ckeditor/ckeditor/plugins/image2/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ku.js
ckeditor/ckeditor/plugins/image2/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/gl.js
ckeditor/ckeditor/plugins/image2/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/fr-ca.js
ckeditor/ckeditor/plugins/image2/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/en-gb.js
ckeditor/ckeditor/plugins/image2/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/sk.js
ckeditor/ckeditor/plugins/image2/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/uk.js
ckeditor/ckeditor/plugins/image2/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/af.js
ckeditor/ckeditor/plugins/image2/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/fr.js
ckeditor/ckeditor/plugins/image2/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/it.js
ckeditor/ckeditor/plugins/image2/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/sq.js
ckeditor/ckeditor/plugins/image2/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/eo.js
ckeditor/ckeditor/plugins/image2/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/lv.js
ckeditor/ckeditor/plugins/image2/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/da.js
ckeditor/ckeditor/plugins/image2/lang/fo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/fo.js
ckeditor/ckeditor/plugins/image2/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/nl.js
ckeditor/ckeditor/plugins/image2/lang/gu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/gu.js
ckeditor/ckeditor/plugins/image2/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ko.js
ckeditor/ckeditor/plugins/image2/lang/bs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/bs.js
ckeditor/ckeditor/plugins/image2/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/lt.js
ckeditor/ckeditor/plugins/image2/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/sv.js
ckeditor/ckeditor/plugins/image2/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/tr.js
ckeditor/ckeditor/plugins/image2/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/he.js
ckeditor/ckeditor/plugins/image2/lang/ms.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ms.js
ckeditor/ckeditor/plugins/image2/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/es.js
ckeditor/ckeditor/plugins/image2/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/el.js
ckeditor/ckeditor/plugins/image2/lang/hi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/hi.js
ckeditor/ckeditor/plugins/image2/lang/sr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/sr.js
ckeditor/ckeditor/plugins/image2/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/en.js
ckeditor/ckeditor/plugins/image2/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ca.js
ckeditor/ckeditor/plugins/image2/lang/sr-latn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/sr-latn.js
ckeditor/ckeditor/plugins/image2/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/de.js
ckeditor/ckeditor/plugins/image2/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/pt.js
ckeditor/ckeditor/plugins/image2/lang/th.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/th.js
ckeditor/ckeditor/plugins/image2/lang/bn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/bn.js
ckeditor/ckeditor/plugins/image2/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ug.js
ckeditor/ckeditor/plugins/image2/lang/id.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/id.js
ckeditor/ckeditor/plugins/image2/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/sl.js
ckeditor/ckeditor/plugins/image2/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/et.js
ckeditor/ckeditor/plugins/image2/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ro.js
ckeditor/ckeditor/plugins/image2/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/zh-cn.js
ckeditor/ckeditor/plugins/image2/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/fi.js
ckeditor/ckeditor/plugins/image2/lang/en-au.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/en-au.js
ckeditor/ckeditor/plugins/image2/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/pl.js
ckeditor/ckeditor/plugins/image2/lang/si.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/si.js
ckeditor/ckeditor/plugins/image2/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/fa.js
ckeditor/ckeditor/plugins/image2/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ar.js
ckeditor/ckeditor/plugins/image2/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/zh.js
ckeditor/ckeditor/plugins/image2/lang/mn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/mn.js
ckeditor/ckeditor/plugins/image2/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/cs.js
ckeditor/ckeditor/plugins/image2/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ru.js
ckeditor/ckeditor/plugins/image2/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/hu.js
ckeditor/ckeditor/plugins/image2/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/tt.js
ckeditor/ckeditor/plugins/image2/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/hr.js
ckeditor/ckeditor/plugins/image2/lang/en-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/en-ca.js
ckeditor/ckeditor/plugins/image2/lang/mk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/mk.js
ckeditor/ckeditor/plugins/image2/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ja.js
ckeditor/ckeditor/plugins/image2/lang/ka.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/ka.js
ckeditor/ckeditor/plugins/image2/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/vi.js
ckeditor/ckeditor/plugins/image2/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/bg.js
ckeditor/ckeditor/plugins/image2/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/cy.js
ckeditor/ckeditor/plugins/image2/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/km.js
ckeditor/ckeditor/plugins/image2/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/lang/eu.js
ckeditor/ckeditor/plugins/image2/dialogs/image2.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/dialogs/image2.js
ckeditor/ckeditor/plugins/image2/icons/image.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/icons/image.png
ckeditor/ckeditor/plugins/image2/icons/hidpi/image.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/image2/icons/hidpi/image.png
ckeditor/ckeditor/plugins/devtools/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/plugin.js
ckeditor/ckeditor/plugins/devtools/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/pt-br.js
ckeditor/ckeditor/plugins/devtools/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/nb.js
ckeditor/ckeditor/plugins/devtools/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/no.js
ckeditor/ckeditor/plugins/devtools/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/ku.js
ckeditor/ckeditor/plugins/devtools/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/gl.js
ckeditor/ckeditor/plugins/devtools/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/fr-ca.js
ckeditor/ckeditor/plugins/devtools/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/en-gb.js
ckeditor/ckeditor/plugins/devtools/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/sk.js
ckeditor/ckeditor/plugins/devtools/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/uk.js
ckeditor/ckeditor/plugins/devtools/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/fr.js
ckeditor/ckeditor/plugins/devtools/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/it.js
ckeditor/ckeditor/plugins/devtools/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/sq.js
ckeditor/ckeditor/plugins/devtools/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/eo.js
ckeditor/ckeditor/plugins/devtools/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/lv.js
ckeditor/ckeditor/plugins/devtools/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/da.js
ckeditor/ckeditor/plugins/devtools/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/nl.js
ckeditor/ckeditor/plugins/devtools/lang/gu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/gu.js
ckeditor/ckeditor/plugins/devtools/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/ko.js
ckeditor/ckeditor/plugins/devtools/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/lt.js
ckeditor/ckeditor/plugins/devtools/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/sv.js
ckeditor/ckeditor/plugins/devtools/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/tr.js
ckeditor/ckeditor/plugins/devtools/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/he.js
ckeditor/ckeditor/plugins/devtools/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/es.js
ckeditor/ckeditor/plugins/devtools/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/el.js
ckeditor/ckeditor/plugins/devtools/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/en.js
ckeditor/ckeditor/plugins/devtools/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/ca.js
ckeditor/ckeditor/plugins/devtools/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/de.js
ckeditor/ckeditor/plugins/devtools/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/pt.js
ckeditor/ckeditor/plugins/devtools/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/ug.js
ckeditor/ckeditor/plugins/devtools/lang/id.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/id.js
ckeditor/ckeditor/plugins/devtools/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/sl.js
ckeditor/ckeditor/plugins/devtools/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/et.js
ckeditor/ckeditor/plugins/devtools/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/ro.js
ckeditor/ckeditor/plugins/devtools/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/zh-cn.js
ckeditor/ckeditor/plugins/devtools/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/fi.js
ckeditor/ckeditor/plugins/devtools/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/pl.js
ckeditor/ckeditor/plugins/devtools/lang/si.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/si.js
ckeditor/ckeditor/plugins/devtools/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/fa.js
ckeditor/ckeditor/plugins/devtools/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/ar.js
ckeditor/ckeditor/plugins/devtools/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/zh.js
ckeditor/ckeditor/plugins/devtools/lang/_translationstatus.txt /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/_translationstatus.txt
ckeditor/ckeditor/plugins/devtools/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/cs.js
ckeditor/ckeditor/plugins/devtools/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/ru.js
ckeditor/ckeditor/plugins/devtools/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/hu.js
ckeditor/ckeditor/plugins/devtools/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/tt.js
ckeditor/ckeditor/plugins/devtools/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/hr.js
ckeditor/ckeditor/plugins/devtools/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/ja.js
ckeditor/ckeditor/plugins/devtools/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/vi.js
ckeditor/ckeditor/plugins/devtools/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/bg.js
ckeditor/ckeditor/plugins/devtools/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/cy.js
ckeditor/ckeditor/plugins/devtools/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/km.js
ckeditor/ckeditor/plugins/devtools/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/devtools/lang/eu.js
ckeditor/ckeditor/plugins/menubutton/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/menubutton/plugin.js
ckeditor/ckeditor/plugins/codesnippet/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/plugin.js
ckeditor/ckeditor/plugins/codesnippet/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/pt-br.js
ckeditor/ckeditor/plugins/codesnippet/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/nb.js
ckeditor/ckeditor/plugins/codesnippet/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/no.js
ckeditor/ckeditor/plugins/codesnippet/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/ku.js
ckeditor/ckeditor/plugins/codesnippet/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/gl.js
ckeditor/ckeditor/plugins/codesnippet/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/fr-ca.js
ckeditor/ckeditor/plugins/codesnippet/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/en-gb.js
ckeditor/ckeditor/plugins/codesnippet/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/sk.js
ckeditor/ckeditor/plugins/codesnippet/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/uk.js
ckeditor/ckeditor/plugins/codesnippet/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/fr.js
ckeditor/ckeditor/plugins/codesnippet/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/it.js
ckeditor/ckeditor/plugins/codesnippet/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/sq.js
ckeditor/ckeditor/plugins/codesnippet/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/eo.js
ckeditor/ckeditor/plugins/codesnippet/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/lv.js
ckeditor/ckeditor/plugins/codesnippet/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/da.js
ckeditor/ckeditor/plugins/codesnippet/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/nl.js
ckeditor/ckeditor/plugins/codesnippet/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/ko.js
ckeditor/ckeditor/plugins/codesnippet/lang/lt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/lt.js
ckeditor/ckeditor/plugins/codesnippet/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/sv.js
ckeditor/ckeditor/plugins/codesnippet/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/tr.js
ckeditor/ckeditor/plugins/codesnippet/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/he.js
ckeditor/ckeditor/plugins/codesnippet/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/es.js
ckeditor/ckeditor/plugins/codesnippet/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/el.js
ckeditor/ckeditor/plugins/codesnippet/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/en.js
ckeditor/ckeditor/plugins/codesnippet/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/ca.js
ckeditor/ckeditor/plugins/codesnippet/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/de.js
ckeditor/ckeditor/plugins/codesnippet/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/pt.js
ckeditor/ckeditor/plugins/codesnippet/lang/th.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/th.js
ckeditor/ckeditor/plugins/codesnippet/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/ug.js
ckeditor/ckeditor/plugins/codesnippet/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/sl.js
ckeditor/ckeditor/plugins/codesnippet/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/et.js
ckeditor/ckeditor/plugins/codesnippet/lang/ro.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/ro.js
ckeditor/ckeditor/plugins/codesnippet/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/zh-cn.js
ckeditor/ckeditor/plugins/codesnippet/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/fi.js
ckeditor/ckeditor/plugins/codesnippet/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/pl.js
ckeditor/ckeditor/plugins/codesnippet/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/fa.js
ckeditor/ckeditor/plugins/codesnippet/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/ar.js
ckeditor/ckeditor/plugins/codesnippet/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/zh.js
ckeditor/ckeditor/plugins/codesnippet/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/cs.js
ckeditor/ckeditor/plugins/codesnippet/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/ru.js
ckeditor/ckeditor/plugins/codesnippet/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/hu.js
ckeditor/ckeditor/plugins/codesnippet/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/tt.js
ckeditor/ckeditor/plugins/codesnippet/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/hr.js
ckeditor/ckeditor/plugins/codesnippet/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/ja.js
ckeditor/ckeditor/plugins/codesnippet/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/vi.js
ckeditor/ckeditor/plugins/codesnippet/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/bg.js
ckeditor/ckeditor/plugins/codesnippet/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lang/km.js
ckeditor/ckeditor/plugins/codesnippet/dialogs/codesnippet.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/dialogs/codesnippet.js
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/CHANGES.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/CHANGES.md
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/LICENSE /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css
ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css
ckeditor/ckeditor/plugins/codesnippet/icons/codesnippet.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/icons/codesnippet.png
ckeditor/ckeditor/plugins/codesnippet/icons/hidpi/codesnippet.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/codesnippet/icons/hidpi/codesnippet.png
ckeditor/ckeditor/plugins/find/dialogs/find.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/find/dialogs/find.js
ckeditor/ckeditor/plugins/tableselection/styles/tableselection.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/tableselection/styles/tableselection.css
ckeditor/ckeditor/plugins/pastefromword/filter/default.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/pastefromword/filter/default.js
ckeditor/ckeditor/plugins/notification/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/plugin.js
ckeditor/ckeditor/plugins/notification/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/pt-br.js
ckeditor/ckeditor/plugins/notification/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/nb.js
ckeditor/ckeditor/plugins/notification/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/ku.js
ckeditor/ckeditor/plugins/notification/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/gl.js
ckeditor/ckeditor/plugins/notification/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/fr.js
ckeditor/ckeditor/plugins/notification/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/it.js
ckeditor/ckeditor/plugins/notification/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/eo.js
ckeditor/ckeditor/plugins/notification/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/da.js
ckeditor/ckeditor/plugins/notification/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/nl.js
ckeditor/ckeditor/plugins/notification/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/ko.js
ckeditor/ckeditor/plugins/notification/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/sv.js
ckeditor/ckeditor/plugins/notification/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/tr.js
ckeditor/ckeditor/plugins/notification/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/en.js
ckeditor/ckeditor/plugins/notification/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/de.js
ckeditor/ckeditor/plugins/notification/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/zh-cn.js
ckeditor/ckeditor/plugins/notification/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/pl.js
ckeditor/ckeditor/plugins/notification/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/zh.js
ckeditor/ckeditor/plugins/notification/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/cs.js
ckeditor/ckeditor/plugins/notification/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/notification/lang/ru.js
ckeditor/ckeditor/plugins/dialog/dialogDefinition.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/dialog/dialogDefinition.js
ckeditor/ckeditor/plugins/dialog/styles/dialog.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/dialog/styles/dialog.css
ckeditor/ckeditor/plugins/copyformatting/cursors/cursor-disabled.svg /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/copyformatting/cursors/cursor-disabled.svg
ckeditor/ckeditor/plugins/copyformatting/cursors/cursor.svg /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/copyformatting/cursors/cursor.svg
ckeditor/ckeditor/plugins/copyformatting/styles/copyformatting.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/copyformatting/styles/copyformatting.css
ckeditor/ckeditor/plugins/stylesheetparser/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/stylesheetparser/plugin.js
ckeditor/ckeditor/plugins/autolink/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/autolink/plugin.js
ckeditor/ckeditor/plugins/scayt/LICENSE.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/scayt/LICENSE.md
ckeditor/ckeditor/plugins/scayt/README.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/scayt/README.md
ckeditor/ckeditor/plugins/scayt/CHANGELOG.md /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/scayt/CHANGELOG.md
ckeditor/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css
ckeditor/ckeditor/plugins/scayt/dialogs/dialog.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/scayt/dialogs/dialog.css
ckeditor/ckeditor/plugins/scayt/dialogs/options.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/scayt/dialogs/options.js
ckeditor/ckeditor/plugins/scayt/dialogs/toolbar.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/scayt/dialogs/toolbar.css
ckeditor/ckeditor/plugins/clipboard/dialogs/paste.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/clipboard/dialogs/paste.js
ckeditor/ckeditor/plugins/lineutils/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/lineutils/plugin.js
ckeditor/ckeditor/plugins/iframedialog/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/iframedialog/plugin.js
ckeditor/ckeditor/plugins/placeholder/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/plugin.js
ckeditor/ckeditor/plugins/placeholder/lang/pt-br.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/pt-br.js
ckeditor/ckeditor/plugins/placeholder/lang/nb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/nb.js
ckeditor/ckeditor/plugins/placeholder/lang/no.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/no.js
ckeditor/ckeditor/plugins/placeholder/lang/ku.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/ku.js
ckeditor/ckeditor/plugins/placeholder/lang/gl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/gl.js
ckeditor/ckeditor/plugins/placeholder/lang/fr-ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/fr-ca.js
ckeditor/ckeditor/plugins/placeholder/lang/en-gb.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/en-gb.js
ckeditor/ckeditor/plugins/placeholder/lang/sk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/sk.js
ckeditor/ckeditor/plugins/placeholder/lang/uk.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/uk.js
ckeditor/ckeditor/plugins/placeholder/lang/af.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/af.js
ckeditor/ckeditor/plugins/placeholder/lang/fr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/fr.js
ckeditor/ckeditor/plugins/placeholder/lang/it.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/it.js
ckeditor/ckeditor/plugins/placeholder/lang/sq.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/sq.js
ckeditor/ckeditor/plugins/placeholder/lang/eo.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/eo.js
ckeditor/ckeditor/plugins/placeholder/lang/lv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/lv.js
ckeditor/ckeditor/plugins/placeholder/lang/da.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/da.js
ckeditor/ckeditor/plugins/placeholder/lang/nl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/nl.js
ckeditor/ckeditor/plugins/placeholder/lang/ko.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/ko.js
ckeditor/ckeditor/plugins/placeholder/lang/sv.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/sv.js
ckeditor/ckeditor/plugins/placeholder/lang/tr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/tr.js
ckeditor/ckeditor/plugins/placeholder/lang/he.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/he.js
ckeditor/ckeditor/plugins/placeholder/lang/es.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/es.js
ckeditor/ckeditor/plugins/placeholder/lang/el.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/el.js
ckeditor/ckeditor/plugins/placeholder/lang/en.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/en.js
ckeditor/ckeditor/plugins/placeholder/lang/ca.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/ca.js
ckeditor/ckeditor/plugins/placeholder/lang/de.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/de.js
ckeditor/ckeditor/plugins/placeholder/lang/pt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/pt.js
ckeditor/ckeditor/plugins/placeholder/lang/th.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/th.js
ckeditor/ckeditor/plugins/placeholder/lang/ug.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/ug.js
ckeditor/ckeditor/plugins/placeholder/lang/id.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/id.js
ckeditor/ckeditor/plugins/placeholder/lang/sl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/sl.js
ckeditor/ckeditor/plugins/placeholder/lang/et.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/et.js
ckeditor/ckeditor/plugins/placeholder/lang/zh-cn.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/zh-cn.js
ckeditor/ckeditor/plugins/placeholder/lang/fi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/fi.js
ckeditor/ckeditor/plugins/placeholder/lang/pl.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/pl.js
ckeditor/ckeditor/plugins/placeholder/lang/si.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/si.js
ckeditor/ckeditor/plugins/placeholder/lang/fa.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/fa.js
ckeditor/ckeditor/plugins/placeholder/lang/ar.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/ar.js
ckeditor/ckeditor/plugins/placeholder/lang/zh.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/zh.js
ckeditor/ckeditor/plugins/placeholder/lang/cs.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/cs.js
ckeditor/ckeditor/plugins/placeholder/lang/ru.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/ru.js
ckeditor/ckeditor/plugins/placeholder/lang/hu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/hu.js
ckeditor/ckeditor/plugins/placeholder/lang/tt.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/tt.js
ckeditor/ckeditor/plugins/placeholder/lang/hr.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/hr.js
ckeditor/ckeditor/plugins/placeholder/lang/ja.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/ja.js
ckeditor/ckeditor/plugins/placeholder/lang/vi.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/vi.js
ckeditor/ckeditor/plugins/placeholder/lang/bg.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/bg.js
ckeditor/ckeditor/plugins/placeholder/lang/cy.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/cy.js
ckeditor/ckeditor/plugins/placeholder/lang/km.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/km.js
ckeditor/ckeditor/plugins/placeholder/lang/eu.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/lang/eu.js
ckeditor/ckeditor/plugins/placeholder/dialogs/placeholder.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/dialogs/placeholder.js
ckeditor/ckeditor/plugins/placeholder/icons/placeholder.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/icons/placeholder.png
ckeditor/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png
ckeditor/ckeditor/plugins/tableresize/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/tableresize/plugin.js
ckeditor/ckeditor/plugins/table/dialogs/table.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/table/dialogs/table.js
ckeditor/ckeditor/plugins/embed/plugin.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embed/plugin.js
ckeditor/ckeditor/plugins/embed/icons/embed.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embed/icons/embed.png
ckeditor/ckeditor/plugins/embed/icons/hidpi/embed.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/embed/icons/hidpi/embed.png
ckeditor/ckeditor/plugins/preview/preview.html /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/preview/preview.html
ckeditor/ckeditor/plugins/preview/images/pagebreak.gif /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/preview/images/pagebreak.gif
ckeditor/ckeditor/plugins/preview/styles/screen.css /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/plugins/preview/styles/screen.css
ckeditor/ckeditor/adapters/jquery.js /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/ckeditor/adapters/jquery.js
ckeditor/file-icons/ppt.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/file-icons/ppt.png
ckeditor/file-icons/xls.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/file-icons/xls.png
ckeditor/file-icons/txt.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/file-icons/txt.png
ckeditor/file-icons/doc.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/file-icons/doc.png
ckeditor/file-icons/swf.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/file-icons/swf.png
ckeditor/file-icons/pdf.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/file-icons/pdf.png
ckeditor/file-icons/file.png /app/.venv/lib/python3.11/site-packages/ckeditor/static/ckeditor/file-icons/file.png
ckeditor/ckeditor_uploader/admin_base.css /app/.venv/lib/python3.11/site-packages/ckeditor_uploader/static/ckeditor/ckeditor_uploader/admin_base.css
import_export/guess_format.js /app/.venv/lib/python3.11/site-packages/import_export/static/import_export/guess_format.js
import_export/action_formats.js /app/.venv/lib/python3.11/site-packages/import_export/static/import_export/action_formats.js
import_export/import.css /app/.venv/lib/python3.11/site-packages/import_export/static/import_export/import.css
logs/admin/logs.css /app/logs/static/logs/admin/logs.css
remote_backends/microsoft-64px.png /app/remote_backends/static/remote_backends/microsoft-64px.png
remote_backends/google-64px.png /app/remote_backends/static/remote_backends/google-64px.png
remote_backends/skolon-logo-compact.png /app/remote_backends/static/remote_backends/skolon-logo-compact.png
silk/favicon-16x16.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/favicon-16x16.png
silk/filter2.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/filter2.png
silk/filter.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/filter.png
silk/favicon-32x32.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/favicon-32x32.png
silk/js/pages/request.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/request.js
silk/js/pages/summary.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/summary.js
silk/js/pages/raw.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/raw.js
silk/js/pages/base.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/base.js
silk/js/pages/profiling.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/profiling.js
silk/js/pages/requests.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/requests.js
silk/js/pages/sql_detail.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/sql_detail.js
silk/js/pages/profile_detail.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/profile_detail.js
silk/js/pages/detail_base.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/detail_base.js
silk/js/pages/root_base.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/root_base.js
silk/js/pages/clear_db.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/pages/clear_db.js
silk/js/components/filters.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/components/filters.js
silk/js/components/cell.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/js/components/cell.js
silk/fonts/glyphicons-halflings-regular.ttf /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.ttf
silk/fonts/glyphicons-halflings-regular.svg /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.svg
silk/fonts/glyphicons-halflings-regular.woff2 /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.woff2
silk/fonts/glyphicons-halflings-regular.eot /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.eot
silk/fonts/glyphicons-halflings-regular.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.woff
silk/fonts/fantasque/FantasqueSansMono-Regular.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fantasque/FantasqueSansMono-Regular.woff
silk/fonts/fantasque/FantasqueSansMono-BoldItalic.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fantasque/FantasqueSansMono-BoldItalic.woff
silk/fonts/fantasque/FantasqueSansMono-RegItalic.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fantasque/FantasqueSansMono-RegItalic.woff
silk/fonts/fantasque/FantasqueSansMono-Bold.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fantasque/FantasqueSansMono-Bold.woff
silk/fonts/fira/FiraSans-LightItalic.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-LightItalic.woff
silk/fonts/fira/FiraSans-BoldItalic.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-BoldItalic.woff
silk/fonts/fira/FiraSans-MediumItalic.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-MediumItalic.woff
silk/fonts/fira/FiraSans-Bold.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-Bold.woff
silk/fonts/fira/FiraSans-Medium.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-Medium.woff
silk/fonts/fira/FiraSans-Light.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-Light.woff
silk/fonts/fira/FiraSans-RegularItalic.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-RegularItalic.woff
silk/fonts/fira/FiraSans-Regular.woff /app/.venv/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-Regular.woff
silk/lib/jquery.datetimepicker.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/jquery.datetimepicker.js
silk/lib/bootstrap-datetimepicker.min.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap-datetimepicker.min.css
silk/lib/jquery-ui-1.13.1.min.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/jquery-ui-1.13.1.min.css
silk/lib/svg-pan-zoom.min.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/svg-pan-zoom.min.js
silk/lib/sortable.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/sortable.js
silk/lib/jquery-ui-1.13.1.min.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/jquery-ui-1.13.1.min.js
silk/lib/bootstrap-theme.min.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap-theme.min.css
silk/lib/jquery-3.6.0.min.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/jquery-3.6.0.min.js
silk/lib/jquery.datetimepicker.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/jquery.datetimepicker.css
silk/lib/bootstrap.min.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap.min.css
silk/lib/viz-lite.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/viz-lite.js
silk/lib/bootstrap-datetimepicker.min.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap-datetimepicker.min.js
silk/lib/bootstrap.min.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap.min.js
silk/lib/highlight/highlight.pack.js /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/highlight/highlight.pack.js
silk/lib/highlight/foundation.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/highlight/foundation.css
silk/lib/images/ui-bg_gloss-wave_35_f6a828_500x100.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_gloss-wave_35_f6a828_500x100.png
silk/lib/images/ui-icons_228ef1_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_228ef1_256x240.png
silk/lib/images/ui-icons_777777_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_777777_256x240.png
silk/lib/images/ui-icons_ffd27a_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_ffd27a_256x240.png
silk/lib/images/ui-icons_ef8c08_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_ef8c08_256x240.png
silk/lib/images/ui-icons_cc0000_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_cc0000_256x240.png
silk/lib/images/ui-icons_222222_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_222222_256x240.png
silk/lib/images/ui-icons_444444_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_444444_256x240.png
silk/lib/images/ui-bg_diagonals-thick_18_b81900_40x40.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_diagonals-thick_18_b81900_40x40.png
silk/lib/images/ui-bg_flat_10_000000_40x100.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_flat_10_000000_40x100.png
silk/lib/images/ui-bg_diagonals-thick_20_666666_40x40.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_diagonals-thick_20_666666_40x40.png
silk/lib/images/ui-bg_glass_65_ffffff_1x400.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_glass_65_ffffff_1x400.png
silk/lib/images/ui-icons_777620_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_777620_256x240.png
silk/lib/images/ui-icons_555555_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_555555_256x240.png
silk/lib/images/ui-bg_glass_100_fdf5ce_1x400.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_glass_100_fdf5ce_1x400.png
silk/lib/images/ui-bg_glass_100_f6f6f6_1x400.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_glass_100_f6f6f6_1x400.png
silk/lib/images/ui-bg_highlight-soft_100_eeeeee_1x100.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
silk/lib/images/ui-icons_ffffff_256x240.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_ffffff_256x240.png
silk/lib/images/ui-bg_highlight-soft_75_ffe45c_1x100.png /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
silk/lib/images/animated-overlay.gif /app/.venv/lib/python3.11/site-packages/silk/static/silk/lib/images/animated-overlay.gif
silk/css/pages/raw.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/raw.css
silk/css/pages/requests.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/requests.css
silk/css/pages/profiling.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/profiling.css
silk/css/pages/profile_detail.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/profile_detail.css
silk/css/pages/root_base.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/root_base.css
silk/css/pages/detail_base.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/detail_base.css
silk/css/pages/summary.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/summary.css
silk/css/pages/sql_detail.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/sql_detail.css
silk/css/pages/clear_db.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/clear_db.css
silk/css/pages/cprofile.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/cprofile.css
silk/css/pages/sql.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/sql.css
silk/css/pages/request.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/request.css
silk/css/pages/base.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/pages/base.css
silk/css/components/heading.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/components/heading.css
silk/css/components/colors.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/components/colors.css
silk/css/components/numeric.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/components/numeric.css
silk/css/components/summary.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/components/summary.css
silk/css/components/fonts.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/components/fonts.css
silk/css/components/cell.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/components/cell.css
silk/css/components/row.css /app/.venv/lib/python3.11/site-packages/silk/static/silk/css/components/row.css

Templates (62 rendered)

Template path

  1. /app/templates

Templates

schools/schoolclass_detail.html
/app/templates/schools/schoolclass_detail.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'}
base.html
/app/templates/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'}
includes/header.html
/app/templates/includes/header.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'}
includes/top_navbar.html
/app/templates/includes/top_navbar.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'LANGUAGE_CODE': 'en', 'grades': 'Grades 1–6'}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': False, 'framed': False, 'id': None, 'large': False, 'position': 'relative', 'show': True, 'style': ''}}
includes/select_language.html
/app/templates/includes/select_language.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'LANGUAGE_CODE': 'en', 'grades': 'Grades 1–6'} {'LANGUAGE_CODE': 'en'}
includes/sidebar.html
/app/templates/includes/sidebar.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'LANGUAGE_CODE': 'en', 'grades': 'Grades 1–6'}
schools/includes/area_padlock.html
/app/templates/schools/includes/area_padlock.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'LANGUAGE_CODE': 'en', 'grades': 'Grades 1–6'} {'LANGUAGE_CODE': 'en', 'class_title': 'View details for Class 0, DEBUGSCHOOL', 'school_title': 'School administration for DEBUGSCHOOL'} {'area': {'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, 'area_url': '/classes/1757/areas/22/', 'forloop': {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {}, 'revcounter': 4, 'revcounter0': 3}} {'area_id': 22, 'class_id': 1757, 'disabled': False}
schools/includes/area_padlock.html
/app/templates/schools/includes/area_padlock.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'LANGUAGE_CODE': 'en', 'grades': 'Grades 1–6'} {'LANGUAGE_CODE': 'en', 'class_title': 'View details for Class 0, DEBUGSCHOOL', 'school_title': 'School administration for DEBUGSCHOOL'} {'area': {'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, 'area_url': '/classes/1757/areas/22/', 'forloop': {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {}, 'revcounter': 4, 'revcounter0': 3}} {'area_id': 12, 'class_id': 1757, 'disabled': True}
schools/includes/area_padlock.html
/app/templates/schools/includes/area_padlock.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'LANGUAGE_CODE': 'en', 'grades': 'Grades 1–6'} {'LANGUAGE_CODE': 'en', 'class_title': 'View details for Class 0, DEBUGSCHOOL', 'school_title': 'School administration for DEBUGSCHOOL'} {'area': {'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, 'area_url': '/classes/1757/areas/22/', 'forloop': {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {}, 'revcounter': 4, 'revcounter0': 3}} {'area_id': 13, 'class_id': 1757, 'disabled': True}
schools/includes/area_padlock.html
/app/templates/schools/includes/area_padlock.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'LANGUAGE_CODE': 'en', 'grades': 'Grades 1–6'} {'LANGUAGE_CODE': 'en', 'class_title': 'View details for Class 0, DEBUGSCHOOL', 'school_title': 'School administration for DEBUGSCHOOL'} {'area': {'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, 'area_url': '/classes/1757/areas/22/', 'forloop': {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {}, 'revcounter': 4, 'revcounter0': 3}} {'area_id': 14, 'class_id': 1757, 'disabled': True}
includes/sidebar.html
/app/templates/includes/sidebar.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'}
view_breadcrumbs/bootstrap5.html
/app/templates/view_breadcrumbs/bootstrap5.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: breadcrumbs. Contents: [<django.template.library.SimpleNode object at 0x7204c60d6cd0>]>, 'breadcrumbs': [('/schools/admin/1361/', 'DEBUGSCHOOL'), (None, 'Class 0')], 'breadcrumbs_total': 2, 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
includes/message_alerts.html
/app/templates/includes/message_alerts.html
Toggle context {'False': False, 'None': None, 'True': True} {'LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'messages': []}
None
<unknown source>
Toggle context {'False': False, 'None': None, 'True': True}
components/tabs.html
/app/templates/components/tabs.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'block': <Block Node: content_container. Contents: [<TextNode: '\n\n <div class="b'>, <Block Node: breadcrumbs. Contents: [<django.template.library.SimpleNode object at 0x7204c60d6cd0>]>, <TextNode: '\n </div>\n\n '>, <django.template.library.InclusionNode object at 0x7204c60d6d90>, <TextNode: '\n '>, <Block Node: alerts. Contents: []>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n '>, <IfNode>, <TextNode: '\n\n '>, <Block Node: before_content. Contents: []>, <TextNode: '\n\n <div class="m'>, <Block Node: content. Contents: []>, <TextNode: '\n </div>\n\n '>]>} {'block': <Block Node: content. Contents: [<TextNode: '\n<!-- This includes just '>, <django.template.loader_tags.IncludeNode object at 0x7204c45adc10>, <TextNode: '\n<div v-scope style="disp'>, <django.templatetags.i18n.TranslateNode object at 0x7204c40e66d0>, <TextNode: '</h3>\n <div class="row'>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <TextNode: '\n <div class="col-12'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6e10>, <TextNode: '</div>\n </div>'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b7890>, <TextNode: '\n </div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7c50>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <ForNode: for area in areas, tail_len: 17>, <TextNode: '\n </tbody>\n '>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <IfNode>, <TextNode: '\n\n <div class="col">'>, <IfNode>, <TextNode: '\n\n <div class="car'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0bf7d0>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7990>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c0090>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c2010>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0c22d0>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c2890>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c3ed0>, <TextNode: '</h3>\n </div>\n '>, <IfNode>, <TextNode: '\n </div>\n </div>\n'>, <IfNode>, <TextNode: ' '>, <TextNode: '\n\n <div class="mt-3">\n'>, <IfNode>, <TextNode: '\n </div>\n </div>\n\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6490>, <TextNode: '</h3>\n </div>\n '>, <django.template.defaulttags.URLNode object at 0x7204bf0ce810>, <TextNode: '"\n id="invite-'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ce9d0>, <TextNode: '">\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ceb90>, <TextNode: '\n </button>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cedd0>, <TextNode: '</div>\n <div c'>, <IfNode>, <TextNode: '">'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf3d0>, <TextNode: '</div>\n <div c'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf5d0>, <TextNode: '</div>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <ForNode: for teacher in verified_teachers, tail_len: 35>, <TextNode: ' '>, <TextNode: '\n </div>\n </secti'>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n\n <section class="no-'>, <IfNode>, <TextNode: '\n </section>\n </div>\n'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4390>, <TextNode: '</h3>\n <form method='>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4510>, <TextNode: '</em></p>\n '>, <django.template.defaulttags.CsrfTokenNode object at 0x7204bf0e4450>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7204bf0e4810>, <TextNode: '\n <div class="row"'>, <django.template.library.SimpleNode object at 0x7204bf0b4ad0>, <TextNode: '\n </div>\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4cd0>, <TextNode: '</button>\n </form>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cced0>, <TextNode: '</h3>\n\n '>, <IfNode>, <TextNode: ' '>, <TextNode: '\n </section>\n </div>\n'>]>}
includes/button_accordion_toggle.html
/app/templates/includes/button_accordion_toggle.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'block': <Block Node: content_container. Contents: [<TextNode: '\n\n <div class="b'>, <Block Node: breadcrumbs. Contents: [<django.template.library.SimpleNode object at 0x7204c60d6cd0>]>, <TextNode: '\n </div>\n\n '>, <django.template.library.InclusionNode object at 0x7204c60d6d90>, <TextNode: '\n '>, <Block Node: alerts. Contents: []>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n '>, <IfNode>, <TextNode: '\n\n '>, <Block Node: before_content. Contents: []>, <TextNode: '\n\n <div class="m'>, <Block Node: content. Contents: []>, <TextNode: '\n </div>\n\n '>]>} {'block': <Block Node: content. Contents: [<TextNode: '\n<!-- This includes just '>, <django.template.loader_tags.IncludeNode object at 0x7204c45adc10>, <TextNode: '\n<div v-scope style="disp'>, <django.templatetags.i18n.TranslateNode object at 0x7204c40e66d0>, <TextNode: '</h3>\n <div class="row'>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <TextNode: '\n <div class="col-12'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6e10>, <TextNode: '</div>\n </div>'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b7890>, <TextNode: '\n </div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7c50>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <ForNode: for area in areas, tail_len: 17>, <TextNode: '\n </tbody>\n '>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <IfNode>, <TextNode: '\n\n <div class="col">'>, <IfNode>, <TextNode: '\n\n <div class="car'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0bf7d0>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7990>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c0090>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c2010>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0c22d0>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c2890>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c3ed0>, <TextNode: '</h3>\n </div>\n '>, <IfNode>, <TextNode: '\n </div>\n </div>\n'>, <IfNode>, <TextNode: ' '>, <TextNode: '\n\n <div class="mt-3">\n'>, <IfNode>, <TextNode: '\n </div>\n </div>\n\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6490>, <TextNode: '</h3>\n </div>\n '>, <django.template.defaulttags.URLNode object at 0x7204bf0ce810>, <TextNode: '"\n id="invite-'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ce9d0>, <TextNode: '">\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ceb90>, <TextNode: '\n </button>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cedd0>, <TextNode: '</div>\n <div c'>, <IfNode>, <TextNode: '">'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf3d0>, <TextNode: '</div>\n <div c'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf5d0>, <TextNode: '</div>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <ForNode: for teacher in verified_teachers, tail_len: 35>, <TextNode: ' '>, <TextNode: '\n </div>\n </secti'>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n\n <section class="no-'>, <IfNode>, <TextNode: '\n </section>\n </div>\n'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4390>, <TextNode: '</h3>\n <form method='>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4510>, <TextNode: '</em></p>\n '>, <django.template.defaulttags.CsrfTokenNode object at 0x7204bf0e4450>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7204bf0e4810>, <TextNode: '\n <div class="row"'>, <django.template.library.SimpleNode object at 0x7204bf0b4ad0>, <TextNode: '\n </div>\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4cd0>, <TextNode: '</button>\n </form>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cced0>, <TextNode: '</h3>\n\n '>, <IfNode>, <TextNode: ' '>, <TextNode: '\n </section>\n </div>\n'>]>} {'target': '#active-areas-widget-1757'}
includes/button_accordion_toggle.html
/app/templates/includes/button_accordion_toggle.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'block': <Block Node: content_container. Contents: [<TextNode: '\n\n <div class="b'>, <Block Node: breadcrumbs. Contents: [<django.template.library.SimpleNode object at 0x7204c60d6cd0>]>, <TextNode: '\n </div>\n\n '>, <django.template.library.InclusionNode object at 0x7204c60d6d90>, <TextNode: '\n '>, <Block Node: alerts. Contents: []>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n '>, <IfNode>, <TextNode: '\n\n '>, <Block Node: before_content. Contents: []>, <TextNode: '\n\n <div class="m'>, <Block Node: content. Contents: []>, <TextNode: '\n </div>\n\n '>]>} {'block': <Block Node: content. Contents: [<TextNode: '\n<!-- This includes just '>, <django.template.loader_tags.IncludeNode object at 0x7204c45adc10>, <TextNode: '\n<div v-scope style="disp'>, <django.templatetags.i18n.TranslateNode object at 0x7204c40e66d0>, <TextNode: '</h3>\n <div class="row'>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <TextNode: '\n <div class="col-12'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6e10>, <TextNode: '</div>\n </div>'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b7890>, <TextNode: '\n </div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7c50>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <ForNode: for area in areas, tail_len: 17>, <TextNode: '\n </tbody>\n '>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <IfNode>, <TextNode: '\n\n <div class="col">'>, <IfNode>, <TextNode: '\n\n <div class="car'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0bf7d0>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7990>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c0090>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c2010>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0c22d0>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c2890>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c3ed0>, <TextNode: '</h3>\n </div>\n '>, <IfNode>, <TextNode: '\n </div>\n </div>\n'>, <IfNode>, <TextNode: ' '>, <TextNode: '\n\n <div class="mt-3">\n'>, <IfNode>, <TextNode: '\n </div>\n </div>\n\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6490>, <TextNode: '</h3>\n </div>\n '>, <django.template.defaulttags.URLNode object at 0x7204bf0ce810>, <TextNode: '"\n id="invite-'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ce9d0>, <TextNode: '">\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ceb90>, <TextNode: '\n </button>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cedd0>, <TextNode: '</div>\n <div c'>, <IfNode>, <TextNode: '">'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf3d0>, <TextNode: '</div>\n <div c'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf5d0>, <TextNode: '</div>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <ForNode: for teacher in verified_teachers, tail_len: 35>, <TextNode: ' '>, <TextNode: '\n </div>\n </secti'>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n\n <section class="no-'>, <IfNode>, <TextNode: '\n </section>\n </div>\n'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4390>, <TextNode: '</h3>\n <form method='>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4510>, <TextNode: '</em></p>\n '>, <django.template.defaulttags.CsrfTokenNode object at 0x7204bf0e4450>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7204bf0e4810>, <TextNode: '\n <div class="row"'>, <django.template.library.SimpleNode object at 0x7204bf0b4ad0>, <TextNode: '\n </div>\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4cd0>, <TextNode: '</button>\n </form>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cced0>, <TextNode: '</h3>\n\n '>, <IfNode>, <TextNode: ' '>, <TextNode: '\n </section>\n </div>\n'>]>} {'target': '#area-widget-1757'}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': 'area-fulfillment-preloader', 'large': False, 'position': 'absolute', 'show': False, 'style': ''}}
includes/button_accordion_toggle.html
/app/templates/includes/button_accordion_toggle.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'block': <Block Node: content_container. Contents: [<TextNode: '\n\n <div class="b'>, <Block Node: breadcrumbs. Contents: [<django.template.library.SimpleNode object at 0x7204c60d6cd0>]>, <TextNode: '\n </div>\n\n '>, <django.template.library.InclusionNode object at 0x7204c60d6d90>, <TextNode: '\n '>, <Block Node: alerts. Contents: []>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n '>, <IfNode>, <TextNode: '\n\n '>, <Block Node: before_content. Contents: []>, <TextNode: '\n\n <div class="m'>, <Block Node: content. Contents: []>, <TextNode: '\n </div>\n\n '>]>} {'block': <Block Node: content. Contents: [<TextNode: '\n<!-- This includes just '>, <django.template.loader_tags.IncludeNode object at 0x7204c45adc10>, <TextNode: '\n<div v-scope style="disp'>, <django.templatetags.i18n.TranslateNode object at 0x7204c40e66d0>, <TextNode: '</h3>\n <div class="row'>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <TextNode: '\n <div class="col-12'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6e10>, <TextNode: '</div>\n </div>'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b7890>, <TextNode: '\n </div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7c50>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <ForNode: for area in areas, tail_len: 17>, <TextNode: '\n </tbody>\n '>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <IfNode>, <TextNode: '\n\n <div class="col">'>, <IfNode>, <TextNode: '\n\n <div class="car'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0bf7d0>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7990>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c0090>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c2010>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0c22d0>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c2890>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c3ed0>, <TextNode: '</h3>\n </div>\n '>, <IfNode>, <TextNode: '\n </div>\n </div>\n'>, <IfNode>, <TextNode: ' '>, <TextNode: '\n\n <div class="mt-3">\n'>, <IfNode>, <TextNode: '\n </div>\n </div>\n\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6490>, <TextNode: '</h3>\n </div>\n '>, <django.template.defaulttags.URLNode object at 0x7204bf0ce810>, <TextNode: '"\n id="invite-'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ce9d0>, <TextNode: '">\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ceb90>, <TextNode: '\n </button>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cedd0>, <TextNode: '</div>\n <div c'>, <IfNode>, <TextNode: '">'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf3d0>, <TextNode: '</div>\n <div c'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf5d0>, <TextNode: '</div>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <ForNode: for teacher in verified_teachers, tail_len: 35>, <TextNode: ' '>, <TextNode: '\n </div>\n </secti'>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n\n <section class="no-'>, <IfNode>, <TextNode: '\n </section>\n </div>\n'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4390>, <TextNode: '</h3>\n <form method='>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4510>, <TextNode: '</em></p>\n '>, <django.template.defaulttags.CsrfTokenNode object at 0x7204bf0e4450>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7204bf0e4810>, <TextNode: '\n <div class="row"'>, <django.template.library.SimpleNode object at 0x7204bf0b4ad0>, <TextNode: '\n </div>\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4cd0>, <TextNode: '</button>\n </form>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cced0>, <TextNode: '</h3>\n\n '>, <IfNode>, <TextNode: ' '>, <TextNode: '\n </section>\n </div>\n'>]>} {'target': '#freebuilding-widget-1757'}
includes/button_accordion_toggle.html
/app/templates/includes/button_accordion_toggle.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'} {'block': <Block Node: content_container. Contents: [<TextNode: '\n\n <div class="b'>, <Block Node: breadcrumbs. Contents: [<django.template.library.SimpleNode object at 0x7204c60d6cd0>]>, <TextNode: '\n </div>\n\n '>, <django.template.library.InclusionNode object at 0x7204c60d6d90>, <TextNode: '\n '>, <Block Node: alerts. Contents: []>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n '>, <IfNode>, <TextNode: '\n\n '>, <Block Node: before_content. Contents: []>, <TextNode: '\n\n <div class="m'>, <Block Node: content. Contents: []>, <TextNode: '\n </div>\n\n '>]>} {'block': <Block Node: content. Contents: [<TextNode: '\n<!-- This includes just '>, <django.template.loader_tags.IncludeNode object at 0x7204c45adc10>, <TextNode: '\n<div v-scope style="disp'>, <django.templatetags.i18n.TranslateNode object at 0x7204c40e66d0>, <TextNode: '</h3>\n <div class="row'>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <TextNode: '\n <div class="col-12'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6e10>, <TextNode: '</div>\n </div>'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b7890>, <TextNode: '\n </div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7c50>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <ForNode: for area in areas, tail_len: 17>, <TextNode: '\n </tbody>\n '>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </div>\n\n <div cla'>, <IfNode>, <TextNode: '\n\n <div class="col">'>, <IfNode>, <TextNode: '\n\n <div class="car'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0bf7d0>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0b7990>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c0090>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c2010>, <TextNode: '</div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7204bf0c22d0>, <TextNode: '\n </div>\n '>, <Variable Node: school_class.pk>, <TextNode: '" class="collapse show mt'>, <django.templatetags.i18n.BlockTranslateNode object at 0x7204bf0c2890>, <TextNode: '\n </small>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0c3ed0>, <TextNode: '</h3>\n </div>\n '>, <IfNode>, <TextNode: '\n </div>\n </div>\n'>, <IfNode>, <TextNode: ' '>, <TextNode: '\n\n <div class="mt-3">\n'>, <IfNode>, <TextNode: '\n </div>\n </div>\n\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0b6490>, <TextNode: '</h3>\n </div>\n '>, <django.template.defaulttags.URLNode object at 0x7204bf0ce810>, <TextNode: '"\n id="invite-'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ce9d0>, <TextNode: '">\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0ceb90>, <TextNode: '\n </button>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cedd0>, <TextNode: '</div>\n <div c'>, <IfNode>, <TextNode: '">'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf3d0>, <TextNode: '</div>\n <div c'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cf5d0>, <TextNode: '</div>\n '>, <IfNode>, <TextNode: '\n </div>\n '>, <ForNode: for teacher in verified_teachers, tail_len: 35>, <TextNode: ' '>, <TextNode: '\n </div>\n </secti'>, <IfNode>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n\n <section class="no-'>, <IfNode>, <TextNode: '\n </section>\n </div>\n'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4390>, <TextNode: '</h3>\n <form method='>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4510>, <TextNode: '</em></p>\n '>, <django.template.defaulttags.CsrfTokenNode object at 0x7204bf0e4450>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7204bf0e4810>, <TextNode: '\n <div class="row"'>, <django.template.library.SimpleNode object at 0x7204bf0b4ad0>, <TextNode: '\n </div>\n <'>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0e4cd0>, <TextNode: '</button>\n </form>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7204bf0cced0>, <TextNode: '</h3>\n\n '>, <IfNode>, <TextNode: ' '>, <TextNode: '\n </section>\n </div>\n'>]>} {'target': '#physics-builds-widget-1757'}
bootstrap5/field_help_text.html
/app/templates/bootstrap5/field_help_text.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7204bf0850d0>, 'field_help': 'This will force an in-game language for all pupils in this ' 'class. Leave it empty to let the pupils select languages for ' 'themselves.', 'layout': '', 'show_help': True}
includes/footer.html
/app/templates/includes/footer.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'}
includes/cookie_consent.html
/app/templates/includes/cookie_consent.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=Unknown, fields=(name;grade;language)>, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'is_skolon_class': False, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'physics_builds': [], 'renew_license_id': 1645, 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'webpack_bundle_name': 'schoolClassDetail'}
modals/voxeldata.html
/app/templates/modals/voxeldata.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'LNUldQzvYOQo5gFYzvZvPl2iQBNoRYZ74sURqRWvAMhdB21Wk52ocCdIjjmrvedy'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c437be50>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'items': [], 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': ['active-item-id'], 'center': True, 'classes': '', 'footer': True, 'id': 'voxeldata-modal', 'large': True, 'optional_params': 'active-item-id', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'user_agent': <SimpleLazyObject: <user_agents.parsers.UserAgent object at 0x7204bf085510>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
modals/thumbnail_carousel.html
/app/templates/modals/thumbnail_carousel.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'LNUldQzvYOQo5gFYzvZvPl2iQBNoRYZ74sURqRWvAMhdB21Wk52ocCdIjjmrvedy'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c437be50>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'items': [], 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': ['active-item-id'], 'center': True, 'classes': '', 'footer': True, 'id': 'voxeldata-modal', 'large': True, 'optional_params': 'active-item-id', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'user_agent': <SimpleLazyObject: <user_agents.parsers.UserAgent object at 0x7204bf085510>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'LNUldQzvYOQo5gFYzvZvPl2iQBNoRYZ74sURqRWvAMhdB21Wk52ocCdIjjmrvedy'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c437be50>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'items': [], 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': ['active-item-id'], 'center': True, 'classes': '', 'footer': True, 'id': 'voxeldata-modal', 'large': True, 'optional_params': 'active-item-id', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'user_agent': <SimpleLazyObject: <user_agents.parsers.UserAgent object at 0x7204bf085510>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
modals/physics_builds.html
/app/templates/modals/physics_builds.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'z4pxaZCHarzWRrzzisMrqvwUsLLz3bvgSJp3n0ZHMp0LndVx32PkNMHkVtkCHrJH'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4399790>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'items': [], 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': ['active-item-id'], 'center': True, 'classes': '', 'footer': True, 'id': 'physics-build-modal', 'large': True, 'optional_params': 'active-item-id', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
modals/thumbnail_carousel.html
/app/templates/modals/thumbnail_carousel.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'z4pxaZCHarzWRrzzisMrqvwUsLLz3bvgSJp3n0ZHMp0LndVx32PkNMHkVtkCHrJH'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4399790>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'items': [], 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': ['active-item-id'], 'center': True, 'classes': '', 'footer': True, 'id': 'physics-build-modal', 'large': True, 'optional_params': 'active-item-id', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'z4pxaZCHarzWRrzzisMrqvwUsLLz3bvgSJp3n0ZHMp0LndVx32PkNMHkVtkCHrJH'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4399790>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'items': [], 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': ['active-item-id'], 'center': True, 'classes': '', 'footer': True, 'id': 'physics-build-modal', 'large': True, 'optional_params': 'active-item-id', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
schools/modals/token_pdf.html
/app/templates/schools/modals/token_pdf.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: '0dC6mdemP2xc46mUAiEkFWAIUsN7BkSzjSCCzeBmr0Y1ASISlSHd2dL8namafA60'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c43a9e10>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': True, 'classes': '', 'footer': True, 'id': 'token-pdf-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: '0dC6mdemP2xc46mUAiEkFWAIUsN7BkSzjSCCzeBmr0Y1ASISlSHd2dL8namafA60'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c43a9e10>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': True, 'classes': '', 'footer': True, 'id': 'token-pdf-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=Unknown, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/dynamic.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/dynamic.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'modal': {'all_params': [], 'center': False, 'classes': 'invite-users-modal', 'data_attrs': {'data-always-load': True}, 'id': 'invite-teachers-modal', 'large': True, 'optional_params': '', 'required_params': '', 'scrollable': False, 'url': ''}}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': None, 'large': True, 'position': 'absolute', 'show': False, 'style': ''}}
groplay/modals/dynamic.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/dynamic.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'modal': {'all_params': ['content-url'], 'center': False, 'classes': '', 'data_attrs': {'data-always-load': True}, 'id': 'delete-teacher-modal', 'large': False, 'optional_params': '', 'required_params': 'content-url', 'scrollable': False, 'url': ''}}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': None, 'large': False, 'position': 'absolute', 'show': False, 'style': ''}}
schools/modals/create_tokens.html
/app/templates/schools/modals/create_tokens.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'U6iVUZ3X8B4goYVT8yi2Pfm3EZxQoIkFdLir70qXKzv5UKhRT8lVcwxt7H6T2Yy6'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf0e7410>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': 'student-bulk-update', 'footer': True, 'id': 'create-tokens-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'U6iVUZ3X8B4goYVT8yi2Pfm3EZxQoIkFdLir70qXKzv5UKhRT8lVcwxt7H6T2Yy6'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf0e7410>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': 'student-bulk-update', 'footer': True, 'id': 'create-tokens-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': None, 'large': False, 'position': 'absolute', 'show': False, 'style': ''}}
schools/modals/reset_progress.html
/app/templates/schools/modals/reset_progress.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'IpcUEfTcWtCwFfu1t53wv3SfOE1dGLYG14cqRggcyr3lb1QZeF6pSk3FhmAgk1c7'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4b33a10>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': 'student-bulk-update', 'footer': True, 'id': 'reset-progress-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'IpcUEfTcWtCwFfu1t53wv3SfOE1dGLYG14cqRggcyr3lb1QZeF6pSk3FhmAgk1c7'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4b33a10>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': 'student-bulk-update', 'footer': True, 'id': 'reset-progress-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': None, 'large': False, 'position': 'absolute', 'show': False, 'style': ''}}
schools/modals/change_class.html
/app/templates/schools/modals/change_class.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'svECWubJHJJSY1B2gbfws4waZB9Ot6CCLaE89vyJjHaHuNX01LipPlHAsjIR7mQ3'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4c10d10>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': 'student-bulk-update', 'footer': True, 'id': 'change-class-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'svECWubJHJJSY1B2gbfws4waZB9Ot6CCLaE89vyJjHaHuNX01LipPlHAsjIR7mQ3'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4c10d10>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': 'student-bulk-update', 'footer': True, 'id': 'change-class-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=Unknown, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': None, 'large': False, 'position': 'absolute', 'show': False, 'style': ''}}
schools/modals/delete_students.html
/app/templates/schools/modals/delete_students.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: '7IdIv5LN0j5Zx0cetkgWh4w5vSVy1HG6qndeI68NChwO3MyceUjPElHvYAuBFXUx'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4b8bb50>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': 'student-bulk-update', 'footer': True, 'id': 'delete-students-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=False, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: '7IdIv5LN0j5Zx0cetkgWh4w5vSVy1HG6qndeI68NChwO3MyceUjPElHvYAuBFXUx'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4b8bb50>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'block': <Block Node: modals. Contents: [<TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0c4150>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0e4ad0>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ea790>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0ed7d0>, <TextNode: '\n'>, <django.template.library.InclusionNode object at 0x7204bf0edcd0>, <TextNode: '\n\n'>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ee110>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce650>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0ce850>, <TextNode: '\n'>, <django.template.library.SimpleNode object at 0x7204bf0d6dd0>, <TextNode: '\n'>]>, 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': 'student-bulk-update', 'footer': True, 'id': 'delete-students-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=False, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': None, 'large': False, 'position': 'absolute', 'show': False, 'style': ''}}
includes/message_popup.html
/app/templates/includes/message_popup.html
Toggle context {'False': False, 'None': None, 'True': True} {'LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'messages': []}
modals/start_webgl.html
/app/templates/modals/start_webgl.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 's3T77ekYN64ZtFNwnfcbzxm2Khmg20hXLITDkfHYp4vOZr9u8Pf4WOxsdZVjGgvo'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4b6f3d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': True, 'classes': '', 'footer': True, 'id': 'start-webgl-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=False, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'urls': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'user_agent': <SimpleLazyObject: <user_agents.parsers.UserAgent object at 0x7204bf085510>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 's3T77ekYN64ZtFNwnfcbzxm2Khmg20hXLITDkfHYp4vOZr9u8Pf4WOxsdZVjGgvo'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4b6f3d0>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': True, 'classes': '', 'footer': True, 'id': 'start-webgl-modal', 'large': False, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=False, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'urls': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'user_agent': <SimpleLazyObject: <user_agents.parsers.UserAgent object at 0x7204bf085510>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
help/modals/contact_us.html
/app/templates/help/modals/contact_us.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'HknB2SiHdtmoFo1NBEnXuwB1CowQhlsl0Zn7fTFHPrNdbanLmeqQRNMr565TVBGM'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4b6f650>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': '', 'footer': True, 'id': 'contact-us-modal', 'large': True, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=False, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'HknB2SiHdtmoFo1NBEnXuwB1CowQhlsl0Zn7fTFHPrNdbanLmeqQRNMr565TVBGM'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4b6f650>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': '', 'footer': True, 'id': 'contact-us-modal', 'large': True, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=False, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
modals/debug_menu.html
/app/templates/modals/debug_menu.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'wsMbhrBbAw9qigOH43P5sapWv70JzReXP7MHusYbcuAfO2aFPDSYPrAmYPzMd7so'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4ba2150>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=False, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': '', 'footer': True, 'id': 'debug-menu-modal', 'large': True, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=False, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/base.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'STATIC_URL': '/static/', 'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=Unknown, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'wsMbhrBbAw9qigOH43P5sapWv70JzReXP7MHusYbcuAfO2aFPDSYPrAmYPzMd7so'>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204c4ba2150>, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'request': '<<request>>', 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'view_name': 'schools:classes:detail'} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'LANGUAGE': 'en', 'None': None, 'STATIC_URL': '/static/', 'True': True, 'active_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'active_exercise_rooms': [], 'active_students': [], 'active_users': 3, 'app_download_url': None, 'areas': [{'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the <strong>planet&#39;s ' 'climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require energy. ' 'However, the emissions cause bad air and ' 'contribute to climate change, and the inhabitants ' 'are beginning to see the negative effects of ' 'this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different energy ' 'sources, and consider the pros and cons thereof. ' 'At the same time, they get to learn how different ' 'energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, {'activity_count': 45, 'description': '<p>Basically everything we humans and our cattle ' 'eat is produced on farmland. To be able to farm ' 'our foods and animal feed, we require healthy ' 'ecosystems. In this area, the pupils learn more ' 'about farming, such as what soil is, what a seed ' 'needs in order to grow, and how the natural cycles ' 'of plants work. Working with this area should ' 'bring a better understanding of food production ' 'and organic farming, as well as knowledge about ' 'the procreation and life cycles of ' 'plants.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094539-1.png" ' 'width="325" /><img alt="" height="180" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094546-2.png" ' 'width="321" /></p>\r\n' '\r\n' '<p><img alt="" height="181" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094605-3.png" ' 'width="322" /><img alt="" height="179" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/22/image-20220922094626-4.png" ' 'width="318" /></p>\r\n' '\r\n' '<p>On this island, the pupils visit the previously ' 'thriving village of Agravik, which has recently ' 'suffered through a storm. This has cut off supply ' 'deliveries to the village and the villagers have ' 'long since forgotten how to grow their own food. ' 'The pupils, together with MT, will help the ' 'village to learn how to grow and maintain their ' 'own food stores by learning about seeds, the life ' 'cycles of plants, how soil can be used for ' 'farming, and what roles water, manure, and ' 'sunlight play in all of this.</p>\r\n' '\r\n' '<p><u>Learning Objectives</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Farming, Food Production, Local ' 'Ecosystems, and Plant Reproduction.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 29, 'mandatory_activity_count': 20, 'mandatory_activity_ids': [146, 127, 483, 515, 121, 120, 129, 516, 152, 125, 128, 154, 514, 140, 476, 122, 123, 517, 153, 147], 'name': 'Farming (Agravik)', 'offline_activity_count': 16, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 12}, {'activity_count': 52, 'description': '<p>All life consists largely of water. Water is a ' 'necessity for life and also the centre around ' 'which we have built our societies. The amount of ' 'water on Earth doesn&#39;t change, but remains ' 'constant. The water we have today has always been ' 'there. In this area, the pupils learn about the ' 'different types of water on Earth, the natural ' 'cycle of water, and why it&#39;s so important to ' 'take good care of our water.</p>\r\n' '\r\n' '<p><img alt="" height="183" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921180959-1.png" ' 'width="326" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921181039-2.png" ' 'width="309" /></p>\r\n' '\r\n' '<p><img alt="" height="184" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183745-3.png" ' 'width="327" /><img alt="" height="174" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2022/09/21/image-20220921183907-4.png" ' 'width="309" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils learn about ' 'water: What it is, where it can be found, and how ' 'we use it for all kinds of purposes, including our ' 'own survival. They get to visit Water Valley: two ' 'communities on an island suffering from a lack of ' 'fresh, clean water. The river that runs through ' 'the valley has begun to dry up and is also filled ' 'with dangerous waste and chemicals, which puts the ' 'whole valley in danger.&nbsp;</p>\r\n' '\r\n' '<p>There are two parts to this level: The village, ' 'which is suffering from a dirty and dwindling ' 'river, and the city, whose residents need help in ' 'learning how to manage waste and to save the water ' 'they have. The pupils help the residents of both ' 'communities to learn about how water can be used, ' 'what fresh- and saltwater is, the natural cycle of ' 'water, what role we play in maintaining its ' 'ecosystems, and how to treat it like the valuable ' 'resource it is.&nbsp;</p>\r\n' '\r\n' '<p><u>Learning Goals</u></p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Water as a Resource, Chemical, Part of a ' 'Natural Cycle, and as part of our ' 'Ecosystems.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 43, 'mandatory_activity_count': 43, 'mandatory_activity_ids': [670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 683, 722, 684, 685, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 723, 699, 700, 701, 702, 703, 704, 705, 706, 724, 725, 726, 708, 709, 710], 'name': 'Water (Water Valley)', 'offline_activity_count': 9, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 13}, {'activity_count': 64, 'description': '<p>This area is about natural resources and the ' 'waste, usage, and recycling of them. The pupils ' 'learn about humanity&#39;s impact on the planet ' 'and the environment.&nbsp;</p>\r\n' '\r\n' '<p><img alt="" height="210" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/10/mission-starts_5r9FZsq.png" ' 'width="420" /></p>\r\n' '\r\n' '<p>In this assignment, the pupils will help the ' 'people on Cliff Island solve their problems with ' 'littering and overexploitation of natural ' 'resources. The village on the island and the land ' 'on which it is built are close to collapsing as ' 'mining under the village has gone to excess in the ' 'hunt for metals and minerals. The forests are ' 'disappearing due to unsustainable deforestation. ' 'The fine beaches are soon a thing of the past as ' 'the fine sand is used for products for ' 'consumption. The people are beginning to realise ' 'that something must change to prevent the island ' 'from collapsing.</p>\r\n' '\r\n' '<p>In this area, pupils learn the basics of some ' 'common natural resources and how humans use them ' 'in their daily lives. They will learn what a more ' 'sustainable production and consumption can look ' 'like.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Natural Resources, Consumption, ' 'Production and Waste.</li>\r\n' '\t<li>Basic knowledge of finite natural resources ' 'linked to the curriculum in Science studies and ' 'Technology.</li>\r\n' '\t<li>Advanced skills in problem solving with the ' 'help of acquired knowledge in Science studies, ' 'Technology, and Mathematics.</li>\r\n' '</ul>', 'disabled': True, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 52, 'mandatory_activity_count': 39, 'mandatory_activity_ids': [223, 225, 226, 227, 228, 229, 230, 231, 232, 238, 239, 240, 241, 256, 242, 243, 244, 245, 246, 237, 422, 470, 247, 484, 248, 249, 233, 236, 235, 234, 445, 251, 252, 253, 254, 255, 257, 471, 423], 'name': 'Recycling (Cliff Island)', 'offline_activity_count': 12, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 14}], 'class_update_form': <SchoolClassForm bound=False, valid=False, fields=(name;grade;language)>, 'contact_us_form': <ContactUsForm bound=False, valid=False, fields=(category;email;message)>, 'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'email_change_form': None, 'finished_exams': [], 'freebuilding_area_id': 20, 'freebuilding_room_id': 13, 'freebuildings': [], 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'name': 'Class 0', 'pk': 1757, 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'help_text': '<p>This is your class &quot;home page&quot;. Here you get an ' 'overview of your students&#39; activity in Grow Planet. You can ' 'also invite more teachers to the class, manage the class ' 'license, view and change students&#39; login tokens, and add or ' 'remove students.</p>\r\n' '\r\n' '<p>(Note: if the class uses Skolon or another external service, ' 'you may not edit the class, students, teachers or license here. ' 'Instead, you do so via the external service.)</p>', 'help_text_slug': 'class-details', 'http_scheme': 'https', 'is_production': False, 'is_skolon_class': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'license_via_ms': False, 'licenses': [<ClassLicense [1645] Class License [2025-06-10 - 2025-07-17]>], 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'modal': {'all_params': [], 'center': False, 'classes': '', 'footer': True, 'id': 'debug-menu-modal', 'large': True, 'optional_params': '', 'required_params': '', 'scrollable': False}, 'new_class_form': <SchoolClassSelectionForm bound=False, valid=False, fields=(school_class)>, 'notices': [], 'object': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'page_title': 'Class 0', 'pending_teachers': '<<queryset of users.TeacherPendingSchoolClass>>', 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>, 'physics_builds': [], 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'renew_license_id': 1645, 'request': '<<request>>', 'school_class': <SchoolClass [1757] Class 0, DEBUGSCHOOL>, 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'sidebar': {'exams': [{'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Agriculture exam', 'slug': 'agriculture'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Energy exam', 'slug': 'energy'}, {'is_ended': False, 'is_future': False, 'is_ongoing': False, 'name': 'Recycling exam', 'slug': 'recycling'}], 'exercise_rooms': [{'disabled': False, 'name': 'Construction', 'pk': 13}, {'disabled': False, 'name': 'Mathematics', 'pk': 15}, {'disabled': False, 'name': 'Programming', 'pk': 16}, {'disabled': False, 'name': 'Quiz', 'pk': 17}, {'disabled': False, 'name': 'Physics', 'pk': 19}], 'game_areas': [{'disabled': False, 'name': 'Energy & Climate (ElectriCity)', 'pk': 22}, {'disabled': True, 'name': 'Farming (Agravik)', 'pk': 12}, {'disabled': True, 'name': 'Water (Water Valley)', 'pk': 13}, {'disabled': True, 'name': 'Recycling (Cliff Island)', 'pk': 14}], 'hide': False, 'school_class': {'name': 'Class 0', 'pk': 1757, 'remote_identities': [], 'school_id': 1361, 'school_name': 'DEBUGSCHOOL'}}, 'skolon_renew_email_link': 'mailto:growplanet@groplay.com?subject=Grow Planet ' 'licence renewal on Skolon&body=We wish to renew ' 'the following Grow Planet licence(s) on Skolon:', 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'growplanet': 'https://growplanet.se/en/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE': '+46766499355', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'student_formset': <django.forms.formsets.StudentFormFormSet object at 0x7204bf081210>, 'token_pdf_form': <SchoolClassPlayerTokenPDFForm bound=False, valid=False, fields=(player_type;layout)>, 'top_area': {'activity_count': 61, 'description': '<p>This area is about <strong>energy</strong>, ' 'about how people use energy in their everyday ' 'lives and how it affects the ' '<strong>planet&#39;s climate</strong>.</p>\r\n' '\r\n' '<p>In this assignment, pupils will help the ' 'community of ElectriCity to find and start using ' 'better energy sources. ElectriCity, currently ' 'ruled with an iron fist by Mayor Ampersson, uses ' 'fossil fuels for most things that require ' 'energy. However, the emissions cause bad air and ' 'contribute to climate change, and the ' 'inhabitants are beginning to see the negative ' 'effects of this.</p>\r\n' '\r\n' '<p>In this area, the pupils learn the basics of ' 'energy, investigate and help test different ' 'energy sources, and consider the pros and cons ' 'thereof. At the same time, they get to learn how ' 'different energy sources are related to climate ' 'change.</p>\r\n' '\r\n' '<p><u>Learning objectives</u>:</p>\r\n' '\r\n' '<ul>\r\n' '\t<li>Basic knowledge of Sustainable Development ' 'linked to Energy and Climate.</li>\r\n' '\t<li>Basic knowledge of Energy linked to the ' 'curriculum in Science studies, Technology and ' 'Engineering.</li>\r\n' '\t<li>Advanced skills in problem solving with ' 'the help of acquired knowledge in Science ' 'studies, Technology, Engineering&nbsp;and ' 'Mathematics.</li>\r\n' '</ul>\r\n' '\r\n' '<p><img alt="" height="360" ' 'src="https://growplanet.blob.core.windows.net/media/ckeditor/2021/02/11/mission-starts_yM01PyO.png" ' 'width="720" /></p>', 'disabled': False, 'exercise_room_id': None, 'exercise_room_name': None, 'featured_activities': [], 'game_activity_count': 53, 'mandatory_activity_count': 37, 'mandatory_activity_ids': [424, 288, 294, 295, 291, 296, 297, 290, 298, 292, 299, 300, 301, 302, 289, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 331, 318, 319, 320, 322, 475, 323, 324, 326, 327, 328], 'name': 'Energy & Climate (ElectriCity)', 'offline_activity_count': 8, 'percent': 0, 'percent_after_breakpoint': 0, 'percent_before_breakpoint': 0, 'pk': 22}, 'unverified_teachers': '<<teacherqueryset of users.Teacher>>', 'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'verified_teachers': '<<teacherqueryset of users.Teacher>>', 'view': <schools.views.generic.SchoolClassDetailView object at 0x7204c4078310>, 'view_name': 'schools:classes:detail', 'webpack_bundle_name': 'schoolClassDetail'}
groplay/modals/dynamic.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/dynamic.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'modal': {'all_params': ['content-url'], 'center': True, 'classes': '', 'data_attrs': {'data-always-load': True}, 'id': 'area-lock-modal', 'large': False, 'optional_params': '', 'required_params': 'content-url', 'scrollable': False, 'url': ''}}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': None, 'large': False, 'position': 'absolute', 'show': False, 'style': ''}}
groplay/modals/dynamic.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/dynamic.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'modal': {'all_params': ['content-url'], 'center': True, 'classes': '', 'data_attrs': {'data-always-load': True}, 'id': 'exercise-room-lock-modal', 'large': False, 'optional_params': '', 'required_params': 'content-url', 'scrollable': False, 'url': ''}}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': None, 'large': False, 'position': 'absolute', 'show': False, 'style': ''}}
groplay/modals/dynamic.html
/app/.venv/lib/python3.11/site-packages/groplay_django/templates/groplay/modals/dynamic.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'modal': {'all_params': [], 'center': False, 'classes': 'carousel-modal', 'data_attrs': {'data-priority': '30'}, 'id': 'tutorial-modal', 'large': True, 'optional_params': '', 'required_params': '', 'scrollable': True, 'url': '/help/tutorial/'}}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': None, 'large': True, 'position': 'absolute', 'show': False, 'style': ''}}
groplay/preloader.html
/app/templates/groplay/preloader.html
Toggle context {'False': False, 'None': None, 'True': True} {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>, 'preloader': {'backdrop': True, 'framed': True, 'id': 'preloader', 'large': True, 'position': 'fixed', 'show': False, 'style': 'z-index:4'}}

Context processors

django.template.context_processors.csrf
Toggle context {'csrf_token': <SimpleLazyObject: 'TuSozTUXtrDNJPPC0b3muD4tSRIhNuAzc9SUMUhX5p4CfBbALL6fRUfTlzhkrKO0'>}
django.template.context_processors.debug
Toggle context {}
django.template.context_processors.request
Toggle context {'request': <WSGIRequest: GET '/classes/1757/'>}
django.template.context_processors.static
Toggle context {'STATIC_URL': '/static/'}
django.contrib.auth.context_processors.auth
Toggle context {'user': <SimpleLazyObject: <User [33151] DEBUGTEACHER@debugschool.com>>, 'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7204bf08b2d0>}
django.contrib.messages.context_processors.messages
Toggle context {'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7204c40eca10>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}}
edulms.context_processors.edulms_context
Toggle context {'app_download_url': None, 'contact_us_form': <ContactUsForm bound=False, valid=False, fields=(category;email;message)>, 'email_change_form': None, 'header': {'admin_schools': [], 'floating_tutorial_url': '/help/floating-tutorial/redirect/2/', 'google_unassigned_classes_count': 0, 'is_webgl_compatible': True, 'last_active_class_id': 1757, 'ms_sub_notification_count': 0, 'pending_classes': [], 'school_classes': [{'pk': 1757, 'name': 'Class 0', 'school_name': 'DEBUGSCHOOL'}], 'user_name': 'DEBUGTEACHER@debugschool.com'}, 'http_scheme': 'https', 'is_production': False, 'js_runtime_context': {'activeSchoolClassId': 1757, 'appName': 'schools:classes', 'buildTime': '2025-03-11T13:51:37+01:00', 'collapseStatus': {}, 'environment': 'dev', 'floatingTutorialUrl': '/help/floating-tutorial/json/', 'isAuthenticated': True, 'language': 'en', 'lastLogin': datetime.datetime(2025, 7, 10, 2, 3, 2, 909169, tzinfo=<UTC>), 'path': '/classes/1757/', 'urls': {'createAnalyticsEvent': '/logs/analytics/create/', 'notifications': '/notifications/', 'ping': '/ping/', 'pollTimeout': '/poll-timeout/', 'setCollapseStatus': '/set-collapse-status/'}, 'version': '1.63.13', 'viewName': 'schools:classes:detail'}, 'recommend_likeliness_choices': [(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], 'show_app_download_banner': False, 'show_recommend_poll': False, 'show_skolon_button': False, 'static_strings': {'DJANGO_ENVIRONMENT': 'dev', 'EXTERNAL_URLS': {'android': 'https://play.google.com/store/apps/details?id=com.groplay.growplanet', 'chrome': 'https://www.google.com/chrome/', 'facebook': 'https://www.facebook.com/GrowPlanetEducation', 'firefox': 'https://www.mozilla.org/firefox/new/', 'instagram': 'https://www.instagram.com/growplaneteducation/', 'ios': 'https://apps.apple.com/app/grow-planet/id1449906854', 'skolon': 'https://app.skolon.com/library/app/2701', 'twitter': 'https://twitter.com/GrowPlanetEdu', 'youtube': 'https://www.youtube.com/channel/UCOGZzqRIArIt5Alr5430Dhg', 'growplanet': 'https://growplanet.se/en/'}, 'GROPLAY_EMAIL': 'growplanet@groplay.com', 'GROPLAY_PHONE_TRANSLATED': '+46 76 6499355', 'GROPLAY_PHONE': '+46766499355', 'ROOT_URL': 'https://dev.growplanet.groplay.com/'}, 'view_name': 'schools:classes:detail'}

Cache calls from 1 backend

Summary

Total calls Total time Cache hits Cache misses
0 0 ms 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Signals

Signal Receivers
class_prepared
connection_created
got_request_exception
m2m_changed invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, invalidate_m2m, set_show_first_class_tutorial, remove_pending_classes, teacher_class_notifications, teacher_pending_added, create_notifications_on_school_admin_added, delete_notifications_on_school_admin_removed
post_delete PolymorphicManagerFromAzureSchoolLicenseQuerySet._post_delete, PolymorphicManagerFromAzureClassLicenseQuerySet._post_delete, Manager._post_delete, ManagerFromSkolonLicenseQuerySet._post_delete, Manager._post_delete, ManagerFromSkolonLicenseQuerySet._post_delete, Manager._post_delete, Manager._post_delete, Manager._post_delete, Manager._post_delete, Manager._post_delete, MultilingualManager._post_delete, MultilingualManager._post_delete, Manager._post_delete, PolymorphicManagerFromEduInstLicenseQuerySet._post_delete, Manager._post_delete, PolymorphicManagerFromSmallGroupLicenseQuerySet._post_delete, Manager._post_delete, PolymorphicManagerFromSchoolLicenseQuerySet._post_delete, PolymorphicManagerFromClassLicenseQuerySet._post_delete, PolymorphicManagerFromLicenseQuerySet._post_delete, Manager._post_delete, ManagerFromCustomerQuerySet._post_delete, Manager._post_delete, MultilingualManager._post_delete, MultilingualManager._post_delete, MultilingualManager._post_delete, ManagerFromPhysicsBuildQuerySet._post_delete, Manager._post_delete, ManagerFromSchoolClassExamQuerySet._post_delete, ManagerFromVoxelDataQuerySet._post_delete, ManagerFromSolutionQuerySet._post_delete, Manager._post_delete, Manager._post_delete, MultilingualManager._post_delete, _ExerciseActivityManagerFromActivityQuerySet._post_delete, _GameActivityManagerFromActivityQuerySet._post_delete, MultilingualManagerFromActivityQuerySet._post_delete, MultilingualManager._post_delete, MultilingualManagerFromAreaQuerySet._post_delete, Manager._post_delete, MultilingualManagerFromExerciseRoomQuerySet._post_delete, Manager._post_delete, Manager._post_delete, _SchoolClassManagerFromSchoolClassQuerySet._post_delete, ManagerFromSchoolQuerySet._post_delete, Manager._post_delete, Manager._post_delete, UserManager._post_delete, BaseUserManagerFromConsumerQuerySet._post_delete, BaseUserManagerFromTeacherQuerySet._post_delete, Manager._post_delete, ManagerFromStudentQuerySet._post_delete, SuperUserManager._post_delete, CoworkerManager._post_delete, UserManager._post_delete, ManagerFromPlayerTokenQuerySet._post_delete, ManagerFromPlayerQuerySet._post_delete, ContentTypeManager._post_delete, MultilingualManager._post_delete, PolymorphicManagerFromNotificationQuerySet._post_delete, PolymorphicManagerFromNotificationQuerySet._post_delete, PolymorphicManagerFromNotificationQuerySet._post_delete, PolymorphicManagerFromNotificationQuerySet._post_delete, PolymorphicManagerFromNotificationQuerySet._post_delete, PolymorphicManagerFromNotificationQuerySet._post_delete, PolymorphicManagerFromNotificationQuerySet._post_delete, PolymorphicManagerFromNotificationQuerySet._post_delete, MultilingualManager._post_delete, Manager._post_delete, Manager._post_delete, Manager._post_delete, Manager._post_delete, ModelBase.update_changed, ModelBase.update_changed, ModelBase.update_changed, delete_player_on_teacher_delete, delete_notifications_on_class_deleted, regenerate_notifications_on_license_deleted
post_init ImageField.update_dimension_fields, ImageField.update_dimension_fields, ImageField.update_dimension_fields, ThumbnailImageField.update_dimension_fields, 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, 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, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init
post_migrate create_permissions, create_contenttypes
post_save PolymorphicManagerFromAzureSchoolLicenseQuerySet._post_save, PolymorphicManagerFromAzureClassLicenseQuerySet._post_save, Manager._post_save, ManagerFromSkolonLicenseQuerySet._post_save, Manager._post_save, ManagerFromSkolonLicenseQuerySet._post_save, Manager._post_save, Manager._post_save, Manager._post_save, Manager._post_save, Manager._post_save, MultilingualManager._post_save, MultilingualManager._post_save, Manager._post_save, PolymorphicManagerFromEduInstLicenseQuerySet._post_save, Manager._post_save, PolymorphicManagerFromSmallGroupLicenseQuerySet._post_save, Manager._post_save, PolymorphicManagerFromSchoolLicenseQuerySet._post_save, PolymorphicManagerFromClassLicenseQuerySet._post_save, PolymorphicManagerFromLicenseQuerySet._post_save, Manager._post_save, ManagerFromCustomerQuerySet._post_save, Manager._post_save, MultilingualManager._post_save, MultilingualManager._post_save, MultilingualManager._post_save, ManagerFromPhysicsBuildQuerySet._post_save, Manager._post_save, ManagerFromSchoolClassExamQuerySet._post_save, ManagerFromVoxelDataQuerySet._post_save, ManagerFromSolutionQuerySet._post_save, Manager._post_save, Manager._post_save, MultilingualManager._post_save, _ExerciseActivityManagerFromActivityQuerySet._post_save, _GameActivityManagerFromActivityQuerySet._post_save, MultilingualManagerFromActivityQuerySet._post_save, MultilingualManager._post_save, MultilingualManagerFromAreaQuerySet._post_save, Manager._post_save, MultilingualManagerFromExerciseRoomQuerySet._post_save, Manager._post_save, Manager._post_save, _SchoolClassManagerFromSchoolClassQuerySet._post_save, ManagerFromSchoolQuerySet._post_save, Manager._post_save, Manager._post_save, UserManager._post_save, BaseUserManagerFromConsumerQuerySet._post_save, BaseUserManagerFromTeacherQuerySet._post_save, Manager._post_save, ManagerFromStudentQuerySet._post_save, SuperUserManager._post_save, CoworkerManager._post_save, UserManager._post_save, ManagerFromPlayerTokenQuerySet._post_save, ManagerFromPlayerQuerySet._post_save, ContentTypeManager._post_save, MultilingualManager._post_save, PolymorphicManagerFromNotificationQuerySet._post_save, PolymorphicManagerFromNotificationQuerySet._post_save, PolymorphicManagerFromNotificationQuerySet._post_save, PolymorphicManagerFromNotificationQuerySet._post_save, PolymorphicManagerFromNotificationQuerySet._post_save, PolymorphicManagerFromNotificationQuerySet._post_save, PolymorphicManagerFromNotificationQuerySet._post_save, PolymorphicManagerFromNotificationQuerySet._post_save, MultilingualManager._post_save, Manager._post_save, Manager._post_save, Manager._post_save, Manager._post_save, verify_single_settings_object_active, ModelBase.update_changed, ModelBase.update_changed, ModelBase.update_changed, ModelBase.update_changed, invalidate_old_temporary_tokens, set_default_disabled_areas, create_notifications_on_class_created, regenerate_notifications_on_license_save
pre_delete ModelBase.changed, ModelBase.update_changed, delete_thumbnail_on_voxeldata_delete, delete_thumbnail_on_physicsbuild_delete
pre_init
pre_migrate inject_rename_contenttypes_operations
pre_save PolymorphicManagerFromAzureSchoolLicenseQuerySet._pre_save, PolymorphicManagerFromAzureClassLicenseQuerySet._pre_save, Manager._pre_save, ManagerFromSkolonLicenseQuerySet._pre_save, Manager._pre_save, ManagerFromSkolonLicenseQuerySet._pre_save, Manager._pre_save, Manager._pre_save, Manager._pre_save, Manager._pre_save, Manager._pre_save, MultilingualManager._pre_save, MultilingualManager._pre_save, Manager._pre_save, PolymorphicManagerFromEduInstLicenseQuerySet._pre_save, Manager._pre_save, PolymorphicManagerFromSmallGroupLicenseQuerySet._pre_save, Manager._pre_save, PolymorphicManagerFromSchoolLicenseQuerySet._pre_save, PolymorphicManagerFromClassLicenseQuerySet._pre_save, PolymorphicManagerFromLicenseQuerySet._pre_save, Manager._pre_save, ManagerFromCustomerQuerySet._pre_save, Manager._pre_save, MultilingualManager._pre_save, MultilingualManager._pre_save, MultilingualManager._pre_save, ManagerFromPhysicsBuildQuerySet._pre_save, Manager._pre_save, ManagerFromSchoolClassExamQuerySet._pre_save, ManagerFromVoxelDataQuerySet._pre_save, ManagerFromSolutionQuerySet._pre_save, Manager._pre_save, Manager._pre_save, MultilingualManager._pre_save, _ExerciseActivityManagerFromActivityQuerySet._pre_save, _GameActivityManagerFromActivityQuerySet._pre_save, MultilingualManagerFromActivityQuerySet._pre_save, MultilingualManager._pre_save, MultilingualManagerFromAreaQuerySet._pre_save, Manager._pre_save, MultilingualManagerFromExerciseRoomQuerySet._pre_save, Manager._pre_save, Manager._pre_save, _SchoolClassManagerFromSchoolClassQuerySet._pre_save, ManagerFromSchoolQuerySet._pre_save, Manager._pre_save, Manager._pre_save, UserManager._pre_save, BaseUserManagerFromConsumerQuerySet._pre_save, BaseUserManagerFromTeacherQuerySet._pre_save, Manager._pre_save, ManagerFromStudentQuerySet._pre_save, SuperUserManager._pre_save, CoworkerManager._pre_save, UserManager._pre_save, ManagerFromPlayerTokenQuerySet._pre_save, ManagerFromPlayerQuerySet._pre_save, ContentTypeManager._pre_save, MultilingualManager._pre_save, PolymorphicManagerFromNotificationQuerySet._pre_save, PolymorphicManagerFromNotificationQuerySet._pre_save, PolymorphicManagerFromNotificationQuerySet._pre_save, PolymorphicManagerFromNotificationQuerySet._pre_save, PolymorphicManagerFromNotificationQuerySet._pre_save, PolymorphicManagerFromNotificationQuerySet._pre_save, PolymorphicManagerFromNotificationQuerySet._pre_save, PolymorphicManagerFromNotificationQuerySet._pre_save, MultilingualManager._pre_save, Manager._pre_save, Manager._pre_save, Manager._pre_save, Manager._pre_save, ModelBase.changed, pending_notifications_on_teacher_is_active, update_notifications_on_class_moved, delete_thumbnail_on_voxeldata_update, delete_thumbnail_on_physicsbuild_update, update_expiration_reminders_on_end_date_change
request_finished close_old_connections, close_caches, reset_urlconf
request_started reset_queries, close_old_connections
setting_changed reset_cache, clear_cache_handlers, update_installed_apps, update_connections_time_zone, clear_routers_cache, reset_template_engines, clear_serializers_cache, language_changed, localize_settings_changed, file_storage_changed, complex_setting_changed, root_urlconf_changed, static_storage_changed, static_finders_changed, auth_password_validators_changed, user_model_swapped, reload_api_settings, <lambda>, update_toolbar_config, Settings.change_setting, reset_hashers, reload_oauth2_settings, ProfilerResultStorage._clear_cached_properties, clear_caches, 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, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, CompressedManifestStaticFilesStorage._clear_cached_properties, DebugStaticFilesStorage._clear_cached_properties