diff --git a/config/settings/base.py b/config/settings/base.py index 69230706c..517a98618 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -36,6 +36,7 @@ # APP CONFIGURATION # ------------------------------------------------------------------------------ DJANGO_APPS = [ + 'djangosecure', # Default Django apps: 'django.contrib.auth', 'django.contrib.contenttypes', @@ -56,7 +57,6 @@ 'markdown_deux', # Required for Knowledgebase item formatting 'bootstrapform', # Required for nicer formatting of forms with the default templates 'helpdesk', # This is us! - 'rangefilter', 'prettyjson', #'storages', ] @@ -92,26 +92,27 @@ 'student_registration.dashboard', # custom dashboard app 'student_registration.winterization', # custom winterization app 'student_registration.backends', # custom storage app + 'student_registration.staffenroll', + 'student_registration.staffs', ] # See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS -# MIDDLEWARE CONFIGURATION -# ------------------------------------------------------------------------------ MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', + 'student_registration.lockout_middleware.StudentLockoutMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] -# SECURITY CONFIGURATION -X_FRAME_OPTIONS = 'DENY' +# # SECURITY CONFIGURATION +# X_FRAME_OPTIONS = 'DENY' # MIGRATIONS CONFIGURATION # ------------------------------------------------------------------------------ @@ -156,8 +157,18 @@ # ------------------------------------------------------------------------------ # See: https://docs.djangoproject.com/en/dev/ref/settings/#databases DATABASES = { - 'default': env.db('DATABASE_URL', default='postgres:///student_registration'), + 'default': env.db('DATABASE_URL', default='postgres:///Student_Registration'), } +# DATABASES = { +# 'default': { +# 'ENGINE': 'django.db.backends.postgresql_psycopg2', +# 'NAME': 'Student_Registration', +# 'USER': 'postgres', +# 'PASSWORD': 'pg007', +# 'HOST': 'localhost', +# 'PORT': '5432', +# } +# } DATABASES['default']['ATOMIC_REQUESTS'] = True @@ -288,6 +299,9 @@ }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + 'OPTIONS': { + 'min_length': 8, + } }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', @@ -295,6 +309,12 @@ { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, + {'NAME': 'student_registration.password_validators.NumberValidator', + 'OPTIONS': { + 'min_digits': 3, }}, + {'NAME': 'student_registration.password_validators.UppercaseValidator', }, + {'NAME': 'student_registration.password_validators.LowercaseValidator', }, + {'NAME': 'student_registration.password_validators.SymbolValidator', }, ] # AUTHENTICATION CONFIGURATION @@ -337,8 +357,8 @@ # django-compressor # ------------------------------------------------------------------------------ -INSTALLED_APPS += ['compressor'] -STATICFILES_FINDERS += ['compressor.finders.CompressorFinder'] +# INSTALLED_APPS += ['compressor'] +# STATICFILES_FINDERS += ['compressor.finders.CompressorFinder'] # Location of root django.contrib.admin URL, use {% url 'admin:index' %} ADMIN_URL = r'^admin/' diff --git a/config/settings/local.py b/config/settings/local.py index 2c371f0e2..678615e0a 100644 --- a/config/settings/local.py +++ b/config/settings/local.py @@ -1,11 +1,8 @@ # -*- coding: utf-8 -*- """ Local settings - - Run in Debug mode - - Use console backend for emails - - Add Django Debug Toolbar - Add django-extensions as app """ @@ -26,9 +23,9 @@ # Mail settings # ------------------------------------------------------------------------------ -EMAIL_PORT = 1025 - -EMAIL_HOST = 'localhost' +# EMAIL_PORT = 1025 +# +# EMAIL_HOST = 'localhost' EMAIL_BACKEND = env('DJANGO_EMAIL_BACKEND', default='django.core.mail.backends.console.EmailBackend') @@ -44,11 +41,35 @@ # django-debug-toolbar # ------------------------------------------------------------------------------ -MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware', ] -INSTALLED_APPS += ['debug_toolbar', ] +# MIDDLEWARE CONFIGURATION +# ------------------------------------------------------------------------------ + +MIDDLEWARE = MIDDLEWARE + ['debug_toolbar.middleware.DebugToolbarMiddleware', + 'student_registration.middleware.AutoLogout', + 'student_registration.cache_control_middleware.CacheControlMiddleware', + # 'student_registration.one_session.OneSessionPerUserMiddleware', + 'student_registration.hsts_middleware.HSTSMiddleware', + 'student_registration.xframe_middleware.XFrameMiddleware', + ] +INSTALLED_APPS += ['debug_toolbar', 'student_registration.accounts', ] INTERNAL_IPS = ['127.0.0.1', '10.0.2.2', ] +# SECURITY CONFIGURATION +# SECURE_HSTS_SECONDS = 60 +# SECURE_HSTS_INCLUDE_SUBDOMAINS = env.bool('DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS', default=True) +# SECURE_FRAME_DENY = env.bool("DJANGO_SECURE_FRAME_DENY", default=True) +# SECURE_CONTENT_TYPE_NOSNIFF = env.bool('DJANGO_SECURE_CONTENT_TYPE_NOSNIFF', default=True) +# SECURE_BROWSER_XSS_FILTER = True +# SESSION_COOKIE_SECURE = True +# SESSION_COOKIE_HTTPONLY = True +# SECURE_SSL_REDIRECT = env.bool('DJANGO_SECURE_SSL_REDIRECT', default=True) +# CSRF_COOKIE_SECURE = True +# CSRF_COOKIE_HTTPONLY = True +# SECURE_HSTS_PRELOAD = True +# SECURE_REDIRECT_EXEMPT +# SECURE_SSL_HOST +# X_FRAME_OPTIONS = 'DENY' import socket import os @@ -97,3 +118,7 @@ 'level': 'INFO' }, } + +SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer' + +AUTO_LOGOUT_DELAY = 1000 # equivalent to 20 minutes diff --git a/config/settings/production.py b/config/settings/production.py index 0aee8eaa8..8383f1e12 100644 --- a/config/settings/production.py +++ b/config/settings/production.py @@ -19,7 +19,7 @@ # ------------------------------------------------------------------------------ # See: https://docs.djangoproject.com/en/dev/ref/settings/#secret-key # Raises ImproperlyConfigured exception if DJANGO_SECRET_KEY not in os.environ -SECRET_KEY = env('DJANGO_SECRET_KEY') +SECRET_KEY = env('DJANGO_SECRET_KEY', default='l^y44io8f!zr^#n(ui099rz+w2(p^ufz3j726-^6)7g2ijcp!k') # This ensures that Django will be able to detect a secure connection @@ -27,14 +27,24 @@ SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') # raven sentry client # See https://docs.sentry.io/clients/python/integrations/django/ -INSTALLED_APPS += ['raven.contrib.django.raven_compat', ] +INSTALLED_APPS += ['raven.contrib.django.raven_compat','student_registration.accounts', ] # Use Whitenoise to serve static files # See: https://whitenoise.readthedocs.io/ WHITENOISE_MIDDLEWARE = ['whitenoise.middleware.WhiteNoiseMiddleware', ] -MIDDLEWARE = WHITENOISE_MIDDLEWARE + MIDDLEWARE +# MIDDLEWARE CONFIGURATION +# ------------------------------------------------------------------------------ + + +EXTRA_MIDDLEWARE = ['student_registration.middleware.AutoLogout', + 'student_registration.cache_control_middleware.CacheControlMiddleware', + # 'student_registration.one_session.OneSessionPerUserMiddleware', + 'student_registration.hsts_middleware.HSTSMiddleware', + 'student_registration.xframe_middleware.XFrameMiddleware', ] +MIDDLEWARE = WHITENOISE_MIDDLEWARE + MIDDLEWARE + EXTRA_MIDDLEWARE RAVEN_MIDDLEWARE = ['raven.contrib.django.raven_compat.middleware.SentryResponseErrorIdMiddleware'] MIDDLEWARE = RAVEN_MIDDLEWARE + MIDDLEWARE + # opbeat integration # See https://opbeat.com/languages/django/ # INSTALLED_APPS += ['opbeat.contrib.django', ] @@ -53,17 +63,17 @@ # set this to 60 seconds and then to 518400 when you can prove it works SECURE_HSTS_SECONDS = 60 -SECURE_HSTS_INCLUDE_SUBDOMAINS = env.bool( - 'DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS', default=True) -SECURE_CONTENT_TYPE_NOSNIFF = env.bool( - 'DJANGO_SECURE_CONTENT_TYPE_NOSNIFF', default=True) +SECURE_HSTS_INCLUDE_SUBDOMAINS = env.bool('DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS', default=True) +SECURE_FRAME_DENY = env.bool("DJANGO_SECURE_FRAME_DENY", default=True) +SECURE_CONTENT_TYPE_NOSNIFF = env.bool('DJANGO_SECURE_CONTENT_TYPE_NOSNIFF', default=True) SECURE_BROWSER_XSS_FILTER = True -SESSION_COOKIE_SECURE = True SESSION_COOKIE_HTTPONLY = True -SECURE_SSL_REDIRECT = env.bool('DJANGO_SECURE_SSL_REDIRECT', default=True) +SECURE_SSL_REDIRECT = True +SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True CSRF_COOKIE_HTTPONLY = True X_FRAME_OPTIONS = 'DENY' +SECURE_HSTS_PRELOAD = True # SITE CONFIGURATION # ------------------------------------------------------------------------------ @@ -108,9 +118,10 @@ # Anymail with Mailgun INSTALLED_APPS += ['anymail', ] + ANYMAIL = { - 'MAILGUN_API_KEY': env('DJANGO_MAILGUN_API_KEY'), - 'MAILGUN_SENDER_DOMAIN': env('MAILGUN_SENDER_DOMAIN') + 'MAILGUN_API_KEY': env('DJANGO_MAILGUN_API_KEY', default=''), + 'MAILGUN_SENDER_DOMAIN': env('MAILGUN_SENDER_DOMAIN', default='') } EMAIL_BACKEND = 'anymail.backends.mailgun.MailgunBackend' @@ -128,31 +139,46 @@ # Use the Heroku-style specification # Raises ImproperlyConfigured exception if DATABASE_URL not in os.environ -DATABASES['default'] = env.db('DATABASE_URL') +DATABASES['default'] = env.db('DATABASE_URL', default='postgres:///student_registration') if env.bool('DATABASE_SSL_ENABLED', default=False): DATABASES['default']['OPTIONS'] = {'sslmode': 'require'} # CACHING # ------------------------------------------------------------------------------ +# CACHES = { +# 'default': { +# # 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', +# 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', +# 'LOCATION': '' +# } +# } -REDIS_LOCATION = '{0}/{1}'.format(env('REDIS_URL', default='redis://127.0.0.1:6379'), 0) -# Heroku URL does not pass the DB number, so we parse it in CACHES = { 'default': { - 'BACKEND': 'django_redis.cache.RedisCache', - 'LOCATION': REDIS_LOCATION, - 'OPTIONS': { - 'CLIENT_CLASS': 'django_redis.client.DefaultClient', - 'IGNORE_EXCEPTIONS': True, # mimics memcache behavior. - # http://niwinz.github.io/django-redis/latest/#_memcached_exceptions_behavior - } + 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'LOCATION': '/var/tmp/django_cache', } } +# REDIS_LOCATION = '{0}/{1}'.format(env('REDIS_URL', default='redis://127.0.0.1:6379'), 0) +# Heroku URL does not pass the DB number, so we parse it in +# CACHES = { +# 'default': { +# 'BACKEND': 'django_redis.cache.RedisCache', +# 'LOCATION': REDIS_LOCATION, +# 'OPTIONS': { +# 'CLIENT_CLASS': 'django_redis.client.DefaultClient', +# 'IGNORE_EXCEPTIONS': True, # mimics memcache behavior. +# # http://niwinz.github.io/django-redis/latest/#_memcached_exceptions_behavior +# } +# } +# } + +INSTALLED_APPS += ['lockout', ] # Sentry Configuration -SENTRY_DSN = env('DJANGO_SENTRY_DSN') +SENTRY_DSN = env('DJANGO_SENTRY_DSN', default='') SENTRY_CLIENT = env('DJANGO_SENTRY_CLIENT', default='raven.contrib.django.raven_compat.DjangoClient') LOGGING = { 'version': 1, @@ -208,7 +234,20 @@ } # Custom Admin URL, use {% url 'admin:index' %} -ADMIN_URL = env('DJANGO_ADMIN_URL') +ADMIN_URL = env('DJANGO_ADMIN_URL', default='admin') + +SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer' + + +# Auto logout delay in minutes +AUTO_LOGOUT_DELAY = 20 # equivalent to 20 minutes +CSRF_USE_SESSIONS = True + +ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 5 +ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = 600 +CSRF_COOKIE_AGE = None # Your production stuff: Below this line define 3rd party library settings # ------------------------------------------------------------------------------ + +MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage' diff --git a/config/settings/test.py b/config/settings/test.py index 12b844925..ad5231be8 100644 --- a/config/settings/test.py +++ b/config/settings/test.py @@ -1,8 +1,8 @@ -''' +""" Test settings - Used to run tests fast on the continuous integration server and locally -''' +""" from .base import * # noqa @@ -21,8 +21,8 @@ # Mail settings # ------------------------------------------------------------------------------ -EMAIL_HOST = 'localhost' -EMAIL_PORT = 1025 +# EMAIL_HOST = 'localhost' +# EMAIL_PORT = 1025 # In-memory email backend stores messages in django.core.mail.outbox # for unit testing purposes @@ -60,11 +60,11 @@ ], ], ] -class DisableMigrations(object): - def __contains__(self, item): - return True - - def __getitem__(self, item): - return 'notmigrations' - -MIGRATION_MODULES = DisableMigrations() +# class DisableMigrations(object): +# def __contains__(self, item): +# return True +# +# def __getitem__(self, item): +# return 'notmigrations' +# +# MIGRATION_MODULES = DisableMigrations() diff --git a/config/urls.py b/config/urls.py index e0e455fb1..e6687ccc0 100644 --- a/config/urls.py +++ b/config/urls.py @@ -31,6 +31,7 @@ ) from student_registration.clm.views import ( BLNViewSet, + ABLNViewSet, RSViewSet, CBECEViewSet, CLMStudentViewSet, @@ -45,6 +46,8 @@ LoggingStudentMoveViewSet, LoggingProgramMoveViewSet, EnrollmentUpdateViewSet, + StudentDropoutViewSet, + StudentJustifyViewSet, ) from student_registration.outreach.views import HouseHoldViewSet, ChildViewSet from student_registration.backends.views import NotificationViewSet, ExporterViewSet @@ -56,6 +59,8 @@ api.register(r'import-grading', EnrollmentGradingImportViewSet, base_name='import_gradings') api.register(r'update-enrollment', EnrollmentUpdateViewSet, base_name='update_enrollments') api.register(r'logging-student-move', LoggingStudentMoveViewSet, base_name='logging_student_move') +api.register(r'student-dropout-enrollment', StudentDropoutViewSet, base_name='student_dropout_enrollment') +api.register(r'student-justify-enrollment', StudentJustifyViewSet, base_name='student_justify_enrollment') api.register(r'logging-student-program-move', LoggingProgramMoveViewSet, base_name='logging_student_ptogram_move') api.register(r'attendances', AttendanceViewSet, base_name='attendances') api.register(r'absentees', AbsenteeViewSet, base_name='absentees') @@ -69,6 +74,7 @@ api.register(r'classrooms', ClassRoomViewSet, base_name='classrooms') api.register(r'sections', SectionViewSet, base_name='sections') api.register(r'clm-bln', BLNViewSet, base_name='clm-bln') +api.register(r'clm-abln', ABLNViewSet, base_name='clm-abln') api.register(r'clm-rs', RSViewSet, base_name='clm-rs') api.register(r'clm-cbece', CBECEViewSet, base_name='clm-cbece') api.register(r'clm-students', CLMStudentViewSet, base_name='clm-students') @@ -97,6 +103,8 @@ url(r'^clm/', include('student_registration.clm.urls', namespace='clm')), url(r'^outreach/', include('student_registration.outreach.urls', namespace='outreach')), url(r'^attendances/', include('student_registration.attendances.urls', namespace='attendances')), + url(r'^staffenroll/', include('student_registration.staffenroll.urls', namespace='staffenroll')), + url(r'^staffs/', include('student_registration.staffs.urls', namespace='staffs')), url(r'^enrollments/', include('student_registration.enrollments.urls', namespace='enrollments')), url(r'^schools/', include('student_registration.schools.urls', namespace='schools')), url(r'^locations/', include('student_registration.locations.urls', namespace='locations')), diff --git a/config/wsgi.py b/config/wsgi.py index ac00fbc35..e1e804a4b 100644 --- a/config/wsgi.py +++ b/config/wsgi.py @@ -1,17 +1,14 @@ """ WSGI config for Student Registration project. - This module contains the WSGI application used by Django's development server and any production WSGI deployments. It should expose a module-level variable named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover this application via the ``WSGI_APPLICATION`` setting. - Usually you will have the standard Django WSGI application here, but it also might make sense to replace the whole Django WSGI application with a custom one that later delegates to the Django one. For example, you could introduce WSGI middleware here, or combine a Django application with an application of another framework. - """ import os import sys diff --git a/gulpfile.js b/gulpfile.js index b9358f611..4ef1b0a0a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,105 +1,105 @@ - -//////////////////////////////// - //Setup// -//////////////////////////////// - -// Plugins -var gulp = require('gulp'), - pjson = require('./package.json'), - gutil = require('gulp-util'), - sass = require('gulp-sass'), - autoprefixer = require('gulp-autoprefixer'), - cssnano = require('gulp-cssnano'), - rename = require('gulp-rename'), - del = require('del'), - plumber = require('gulp-plumber'), - pixrem = require('gulp-pixrem'), - uglify = require('gulp-uglify'), - imagemin = require('gulp-imagemin'), - spawn = require('child_process').spawn, - runSequence = require('run-sequence'), - browserSync = require('browser-sync').create(), - reload = browserSync.reload; - - -// Relative paths function -var pathsConfig = function (appName) { - this.app = "./" + (appName || pjson.name); - - return { - app: this.app, - templates: this.app + '/templates', - css: this.app + '/static/css', - sass: this.app + '/static/sass', - fonts: this.app + '/static/fonts', - images: this.app + '/static/images', - js: this.app + '/static/js', - } -}; - -var paths = pathsConfig(); - -//////////////////////////////// - //Tasks// -//////////////////////////////// - -// Styles autoprefixing and minification -gulp.task('styles', function() { - return gulp.src(paths.sass + '/*.scss') - .pipe(sass().on('error', sass.logError)) - .pipe(plumber()) // Checks for errors - .pipe(autoprefixer({browsers: ['last 2 versions']})) // Adds vendor prefixes - .pipe(pixrem()) // add fallbacks for rem units - .pipe(gulp.dest(paths.css)) - .pipe(rename({ suffix: '.min' })) - .pipe(cssnano()) // Minifies the result - .pipe(gulp.dest(paths.css)); -}); - -// Javascript minification -gulp.task('scripts', function() { - return gulp.src(paths.js + '/project.js') - .pipe(plumber()) // Checks for errors - .pipe(uglify()) // Minifies the js - .pipe(rename({ suffix: '.min' })) - .pipe(gulp.dest(paths.js)); -}); - -// Image compression -gulp.task('imgCompression', function(){ - return gulp.src(paths.images + '/*') - .pipe(imagemin()) // Compresses PNG, JPEG, GIF and SVG images - .pipe(gulp.dest(paths.images)) -}); - -// Run django server -gulp.task('runServer', function(cb) { - var cmd = spawn('python', ['manage.py', 'runserver'], {stdio: 'inherit'}); - cmd.on('close', function(code) { - console.log('runServer exited with code ' + code); - cb(code); - }); -}); - -// Browser sync server for live reload -gulp.task('browserSync', function() { - browserSync.init( - [paths.css + "/*.css", paths.js + "*.js", paths.templates + '*.html'], { - proxy: "localhost:8000" - }); -}); - -// Watch -gulp.task('watch', function() { - - gulp.watch(paths.sass + '/*.scss', ['styles']); - gulp.watch(paths.js + '/*.js', ['scripts']).on("change", reload); - gulp.watch(paths.images + '/*', ['imgCompression']); - gulp.watch(paths.templates + '/**/*.html').on("change", reload); - -}); - -// Default task -gulp.task('default', function() { - runSequence(['styles', 'scripts', 'imgCompression'], 'runServer', 'browserSync', 'watch'); -}); +// +////////////////////////////////// +// //Setup// +////////////////////////////////// +// +//// Plugins +//var gulp = require('gulp'), +// pjson = require('./package.json'), +// gutil = require('gulp-util'), +// sass = require('gulp-sass'), +// autoprefixer = require('gulp-autoprefixer'), +// cssnano = require('gulp-cssnano'), +// rename = require('gulp-rename'), +// del = require('del'), +// plumber = require('gulp-plumber'), +// pixrem = require('gulp-pixrem'), +// uglify = require('gulp-uglify'), +// imagemin = require('gulp-imagemin'), +// spawn = require('child_process').spawn, +// runSequence = require('run-sequence'), +// browserSync = require('browser-sync').create(), +// reload = browserSync.reload; +// +// +//// Relative paths function +//var pathsConfig = function (appName) { +// this.app = "./" + (appName || pjson.name); +// +// return { +// app: this.app, +// templates: this.app + '/templates', +// css: this.app + '/static/css', +// sass: this.app + '/static/sass', +// fonts: this.app + '/static/fonts', +// images: this.app + '/static/images', +// js: this.app + '/static/js', +// } +//}; +// +//var paths = pathsConfig(); +// +////////////////////////////////// +// //Tasks// +////////////////////////////////// +// +//// Styles autoprefixing and minification +//gulp.task('styles', function() { +// return gulp.src(paths.sass + '/*.scss') +// .pipe(sass().on('error', sass.logError)) +// .pipe(plumber()) // Checks for errors +// .pipe(autoprefixer({browsers: ['last 2 versions']})) // Adds vendor prefixes +// .pipe(pixrem()) // add fallbacks for rem units +// .pipe(gulp.dest(paths.css)) +// .pipe(rename({ suffix: '.min' })) +// .pipe(cssnano()) // Minifies the result +// .pipe(gulp.dest(paths.css)); +//}); +// +//// Javascript minification +//gulp.task('scripts', function() { +// return gulp.src(paths.js + '/project.js') +// .pipe(plumber()) // Checks for errors +// .pipe(uglify()) // Minifies the js +// .pipe(rename({ suffix: '.min' })) +// .pipe(gulp.dest(paths.js)); +//}); +// +//// Image compression +//gulp.task('imgCompression', function(){ +// return gulp.src(paths.images + '/*') +// .pipe(imagemin()) // Compresses PNG, JPEG, GIF and SVG images +// .pipe(gulp.dest(paths.images)) +//}); +// +//// Run django server +//gulp.task('runServer', function(cb) { +// var cmd = spawn('python', ['manage.py', 'runserver'], {stdio: 'inherit'}); +// cmd.on('close', function(code) { +// console.log('runServer exited with code ' + code); +// cb(code); +// }); +//}); +// +//// Browser sync server for live reload +//gulp.task('browserSync', function() { +// browserSync.init( +// [paths.css + "/*.css", paths.js + "*.js", paths.templates + '*.html'], { +// proxy: "localhost:8000" +// }); +//}); +// +//// Watch +//gulp.task('watch', function() { +// +// gulp.watch(paths.sass + '/*.scss', ['styles']); +// gulp.watch(paths.js + '/*.js', ['scripts']).on("change", reload); +// gulp.watch(paths.images + '/*', ['imgCompression']); +// gulp.watch(paths.templates + '/**/*.html').on("change", reload); +// +//}); +// +//// Default task +//gulp.task('default', function() { +// runSequence(['styles', 'scripts', 'imgCompression'], 'runServer', 'browserSync', 'watch'); +//}); diff --git a/requirements/base.txt b/requirements/base.txt index c1e4af37f..9d62511d8 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -5,7 +5,7 @@ wheel==0.29.0 # Bleeding edge Django -django==1.10.7 # pyup: >=1.10,<1.11 +django==1.11.23 # pyup: >=1.10,<1.11 # Configuration django-environ==0.4.3 @@ -29,7 +29,7 @@ argon2-cffi==16.3.0 django-allauth==0.32.0 # Python-PostgreSQL Database Adapter -psycopg2==2.7.3 +psycopg2==2.7.3.2 # Unicode slugification awesome-slugify==1.6.5 @@ -53,13 +53,13 @@ django-compressor==2.1.1 django-datatables-view==1.13.0 django-mptt==0.8.7 django-makemessages-xgettext==0.1.1 -djangorestframework==3.6.3 +djangorestframework==3.9.1 markdown==2.6.6 -django-filter==0.13.0 +django-filter==1.1.0 django-rest-swagger==2.1.2 drf-nested-routers==0.11.1 xlsxwriter==0.9.2 -tablib==0.11.2 +tablib==0.11.5 django-import-export==0.5.0 django-suit==0.2.21 django-autocomplete-light==3.2.1 @@ -72,5 +72,7 @@ django-tables2==1.10.0 #azure-storage==0.36.0 azure-storage==0.20.0 openpyxl==2.4.9 -django-prettyjson==0.3.3 +django-prettyjson==0.4.1 unicodecsv==0.14.1 +django-lockout==0.1.1 +djangosecure==0.0.11 diff --git a/requirements/local.txt b/requirements/local.txt index 77f03ddb1..2b4f55345 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -6,7 +6,7 @@ django-coverage-plugin==1.5.0 Sphinx==1.6.3 django-extensions==1.8.1 -Werkzeug==0.12.2 +#Werkzeug==0.12.2 django-test-plus==1.0.18 factory-boy==2.8.1 diff --git a/requirements/production.txt b/requirements/production.txt index 6f98cc9f6..0ca76057e 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -17,7 +17,7 @@ django-storages==1.6.5 # Email backends for Mailgun, Postmark, SendGrid and more # ------------------------------------------------------- -django-anymail==0.11.1 +django-anymail==1.2.1 # Raven is the Sentry client # -------------------------- diff --git a/runtests.sh b/runtests.sh index 5259eb514..0b16aaf44 100755 --- a/runtests.sh +++ b/runtests.sh @@ -8,8 +8,8 @@ pip install -r /code/requirements/test.txt # python manage.py makemigrations --dry-run | grep 'No changes detected' || (echo 'There are changes which require migrations.' && exit 1) # Run unittests and coverage report -coverage erase -coverage run manage.py test --noinput --keepdb --settings="$DJANGO_SETTINGS_MODULE" "$@" +# coverage erase +# coverage run manage.py test --noinput --keepdb --settings="$DJANGO_SETTINGS_MODULE" "$@" #coverage html -d reports # Check code style diff --git a/student_registration/accounts/__init__.py b/student_registration/accounts/__init__.py new file mode 100755 index 000000000..ad2e42b81 --- /dev/null +++ b/student_registration/accounts/__init__.py @@ -0,0 +1 @@ +default_app_config = 'student_registration.accounts.apps.AccountsConfig' diff --git a/student_registration/accounts/apps.py b/student_registration/accounts/apps.py new file mode 100755 index 000000000..21c9767e4 --- /dev/null +++ b/student_registration/accounts/apps.py @@ -0,0 +1,8 @@ +from django.apps import AppConfig + +class AccountsConfig(AppConfig): + name = 'student_registration.accounts' + # This function is the only new thing in this file + # it just imports the signal file when the app is ready + def ready(self): + import student_registration.accounts.signals diff --git a/student_registration/accounts/migrations/0001_initial.py b/student_registration/accounts/migrations/0001_initial.py new file mode 100755 index 000000000..0b325acc3 --- /dev/null +++ b/student_registration/accounts/migrations/0001_initial.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-02-01 03:39 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='LoggedInUser', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('session_key', models.CharField(blank=True, max_length=32, null=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='logged_in_user', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/student_registration/accounts/migrations/__init__.py b/student_registration/accounts/migrations/__init__.py new file mode 100755 index 000000000..e69de29bb diff --git a/student_registration/accounts/models.py b/student_registration/accounts/models.py new file mode 100755 index 000000000..7c0f525dd --- /dev/null +++ b/student_registration/accounts/models.py @@ -0,0 +1,13 @@ +from django.db import models +from django.conf import settings + +User = settings.AUTH_USER_MODEL + +# Model to store the list of logged in users +class LoggedInUser(models.Model): + user = models.OneToOneField(User, related_name='logged_in_user') + # Session keys are 32 characters long + session_key = models.CharField(max_length=32, null=True, blank=True) + + def __str__(self): + return self.user.username diff --git a/student_registration/accounts/signals.py b/student_registration/accounts/signals.py new file mode 100755 index 000000000..23c5d176a --- /dev/null +++ b/student_registration/accounts/signals.py @@ -0,0 +1,14 @@ +# Signals that fires when a user logs in and logs out + +from django.contrib.auth import user_logged_in, user_logged_out +from django.dispatch import receiver +from student_registration.accounts.models import LoggedInUser + +@receiver(user_logged_in) +def on_user_logged_in(sender, request, **kwargs): + LoggedInUser.objects.get_or_create(user=kwargs.get('user')) + + +@receiver(user_logged_out) +def on_user_logged_out(sender, **kwargs): + LoggedInUser.objects.filter(user=kwargs.get('user')).delete() diff --git a/student_registration/alp/filters.py b/student_registration/alp/filters.py index ad71cff85..bfb6a5a3f 100644 --- a/student_registration/alp/filters.py +++ b/student_registration/alp/filters.py @@ -19,7 +19,7 @@ class Meta: } -class PreTestFilter(FilterSet): +class PreTest_allFilter(FilterSet): level = ModelChoiceFilter(queryset=EducationLevel.objects.all(), empty_label=_('Entrance test')) school = ModelChoiceFilter(queryset=School.objects.all(), empty_label=_('School')) @@ -35,6 +35,22 @@ class Meta: } +class PreTestFilter(FilterSet): + level = ModelChoiceFilter(queryset=EducationLevel.objects.all(), empty_label=_('Entrance test')) + #school = ModelChoiceFilter(queryset=School.objects.all(), empty_label=_('School')) + + class Meta: + model = Outreach + fields = { + # 'school': ['exact'], + 'level': ['exact'], + 'pre_test_room': ['exact'], + 'student__first_name': ['contains'], + 'student__father_name': ['contains'], + 'student__last_name': ['contains'], + } + + class PostTestFilter(FilterSet): registered_in_level = ModelChoiceFilter(queryset=EducationLevel.objects.all(), empty_label=_('Current Level')) school = ModelChoiceFilter(queryset=School.objects.all(), empty_label=_('School')) diff --git a/student_registration/alp/forms.py b/student_registration/alp/forms.py index f3160e92c..c8d2d44c6 100644 --- a/student_registration/alp/forms.py +++ b/student_registration/alp/forms.py @@ -9,9 +9,10 @@ from crispy_forms.helper import FormHelper from crispy_forms.bootstrap import FormActions from crispy_forms.layout import Layout, Fieldset, Button, Submit, Div, Field, HTML - +from student_registration.enrollments.models import DuplicateStd from .models import Outreach, ALPRound from .serializers import OutreachSerializer, OutreachSmallSerializer +from student_registration.alp.templatetags.util_tags import has_group from student_registration.students.models import ( Person, Student, @@ -23,7 +24,8 @@ EducationLevel, ClassLevel, Section, - ClassRoom + ClassRoom, + EducationYear, ) YES_NO_CHOICE = ((1, _("Yes")), (0, _("No"))) @@ -321,7 +323,7 @@ class Meta: class Media: js = ( - 'js/jquery-1.12.3.min.js', + 'js/jquery-3.3.1.min.js', 'js/jquery-ui-1.12.1.js', 'js/validator.js', 'js/registrations.js', @@ -332,8 +334,8 @@ class PreTestForm(forms.ModelForm): school = forms.ModelChoiceField( label=_('School'), - queryset=School.objects.all(), widget=forms.Select, - required=True, to_field_name='id', + queryset=School.objects.all(), widget=forms.HiddenInput, + required=False, to_field_name='id', ) student_first_name = forms.CharField( label=_("First name"), @@ -387,6 +389,37 @@ class PreTestForm(forms.ModelForm): widget=forms.NumberInput(attrs=({'maxlength': 4})), min_value=0, required=True ) + student_mother_fullname = forms.CharField( + label=_("Mother fullname"), + widget=forms.TextInput, required=False + ) + student_phone_prefix = forms.CharField( + label=_("Phone prefix"), + widget=forms.TextInput(attrs=({'maxlength': 2})), required=False + ) + student_phone = forms.CharField( + label=_("Phone number"), + widget=forms.TextInput(attrs=({'maxlength': 6})), required=False + ) + student_nationality = forms.ModelChoiceField( + label=_("Nationality"), + queryset=Nationality.objects.all(), widget=forms.Select, + required=True, to_field_name='id', + ) + student_mother_nationality = forms.ModelChoiceField( + label=_("Mother nationality"), + queryset=Nationality.objects.all(), widget=forms.Select, + required=True, to_field_name='id', + ) + student_id_type = forms.ModelChoiceField( + label=_("ID type"), + queryset=IDType.objects.all(), widget=forms.Select, + required=True, to_field_name='id' + ) + student_id_number = forms.CharField( + label=_("ID number - Cell 14"), + widget=forms.TextInput, required=True + ) def __init__(self, *args, **kwargs): super(PreTestForm, self).__init__(*args, **kwargs) @@ -399,18 +432,265 @@ def __init__(self, *args, **kwargs): self.helper.form_action = reverse('alp:pre_test_edit', kwargs={'pk': instance.id}) else: self.helper.form_action = reverse('alp:pre_test_add') + self.helper.layout = Layout( + Fieldset( None, Div( HTML('

' + _('Entrance test') + '

') ), Div( + #HTML('1'), + #Div('school', css_class='col-md-4'), HTML('1'), - Div('school', css_class='col-md-4'), - HTML('2'), Div('level', css_class='col-md-3'), + HTML('2'), + Div('pre_test_room', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Basic Data') + '

') + ), + Div( + HTML('1'), + Div('student_first_name', css_class='col-md-3'), + HTML('2'), + Div('student_father_name', css_class='col-md-3'), + HTML('3'), + Div('student_last_name', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('4'), + Div('student_sex', css_class='col-md-3'), + HTML('5'), + Div('student_nationality', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('6'), + Div('student_phone_prefix', css_class='col-md-3'), + Div('student_phone', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('7'), + Div('student_id_type', css_class='col-md-3'), + HTML('8'), + Div('student_id_number', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('9'), + Div('student_mother_fullname', css_class='col-md-3'), + HTML('10'), + Div('student_mother_nationality', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Grades') + '

') + ), + Div( + HTML('1'), + Div('exam_result_arabic', css_class='col-md-3'), + HTML('2'), + Div('exam_language', css_class='col-md-3'), HTML('3'), + Div('exam_result_language', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('4'), + Div('exam_result_math', css_class='col-md-3'), + HTML('5'), + Div('exam_result_science', css_class='col-md-3'), + HTML('6'), + Div('pre_comment', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + if instance: + serializer = OutreachSmallSerializer(instance, data=request.POST) + if serializer.is_valid(): + serializer.update(validated_data=serializer.validated_data, instance=instance) + instance.modified_by = request.user + instance.calculate_pre_result() + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + else: + messages.warning(request, serializer.errors) + else: + serializer = OutreachSmallSerializer(data=request.POST) + if serializer.is_valid(): + instance = serializer.create(validated_data=serializer.validated_data) + instance.school = request.user.school + instance.owner = request.user + instance.alp_round = ALPRound.objects.get(current_pre_test=True) + instance.calculate_pre_result() + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + else: + messages.warning(request, serializer.errors) + + class Meta: + model = Outreach + fields = ( + 'student_first_name', + 'student_father_name', + 'student_last_name', + 'student_sex', + 'exam_result_arabic', + 'exam_language', + 'exam_result_language', + 'exam_result_math', + 'exam_result_science', + 'level', + 'school', + 'pre_test_room', + 'pre_comment' + ) + initial_fields = fields + + class Media: + js = ( + 'js/jquery-3.3.1.min.js', + 'js/jquery-ui-1.12.1.js', + 'js/validator.js', + 'js/registrations.js', + ) + + +class PreTest_allForm(forms.ModelForm): + + school = forms.ModelChoiceField( + label=_('School'), + queryset=School.objects.all(), widget=forms.Select, + required=False, to_field_name='id', + ) + student_first_name = forms.CharField( + label=_("First name"), + widget=forms.TextInput, required=True + ) + student_father_name = forms.CharField( + label=_("Father name"), + widget=forms.TextInput, required=True + ) + student_last_name = forms.CharField( + label=_("Last name"), + widget=forms.TextInput, required=True + ) + student_sex = forms.ChoiceField( + label=_("Sex"), + widget=forms.Select, required=True, + choices=GENDER + ) + level = forms.ModelChoiceField( + label=_('Entrance test'), + queryset=EducationLevel.objects.all(), widget=forms.Select, + required=True, to_field_name='id', + ) + pre_test_room = forms.ChoiceField( + label=_('Pre-test room'), + widget=forms.Select, required=True, + choices=ROOMS + ) + exam_result_arabic = forms.FloatField( + label=_('Arabic'), + widget=forms.NumberInput(attrs=({'maxlength': 4})), + min_value=0, required=True + ) + exam_language = forms.ChoiceField( + label=_('Exam language'), + widget=forms.Select, required=True, + choices=EXAM_LANGUAGES + ) + exam_result_language = forms.FloatField( + label=_('Foreign Language'), + widget=forms.NumberInput(attrs=({'maxlength': 4})), + min_value=0, required=True + ) + exam_result_math = forms.FloatField( + label=_('Math'), + widget=forms.NumberInput(attrs=({'maxlength': 4})), + min_value=0, required=True + ) + exam_result_science = forms.FloatField( + label=_('Science'), + widget=forms.NumberInput(attrs=({'maxlength': 4})), + min_value=0, required=True + ) + student_mother_fullname = forms.CharField( + label=_("Mother fullname"), + widget=forms.TextInput, required=False + ) + student_phone_prefix = forms.CharField( + label=_("Phone prefix"), + widget=forms.TextInput(attrs=({'maxlength': 2})), required=False + ) + student_phone = forms.CharField( + label=_("Phone number"), + widget=forms.TextInput(attrs=({'maxlength': 6})), required=False + ) + student_nationality = forms.ModelChoiceField( + label=_("Nationality"), + queryset=Nationality.objects.all(), widget=forms.Select, + required=True, to_field_name='id', + ) + student_mother_nationality = forms.ModelChoiceField( + label=_("Mother nationality"), + queryset=Nationality.objects.all(), widget=forms.Select, + required=True, to_field_name='id', + ) + student_id_type = forms.ModelChoiceField( + label=_("ID type"), + queryset=IDType.objects.all(), widget=forms.Select, + required=True, to_field_name='id' + ) + student_id_number = forms.CharField( + label=_("ID number - Cell 14"), + widget=forms.TextInput, required=True + ) + + def __init__(self, *args, **kwargs): + super(PreTest_allForm, self).__init__(*args, **kwargs) + + instance = kwargs['instance'] if 'instance' in kwargs else '' + + self.helper = FormHelper() + self.helper.form_show_labels = True + if instance: + self.helper.form_action = reverse('alp:pre_test_edit', kwargs={'pk': instance.id}) + else: + self.helper.form_action = reverse('alp:pre_test_add_all') + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('

' + _('Entrance test') + '

') + ), + Div( + HTML('1'), + Div('school', css_class='col-md-4'), + HTML('1'), + Div('level', css_class='col-md-3'), + HTML('2'), Div('pre_test_room', css_class='col-md-3'), css_class='row', ), @@ -433,6 +713,28 @@ def __init__(self, *args, **kwargs): Div( HTML('4'), Div('student_sex', css_class='col-md-3'), + HTML('5'), + Div('student_nationality', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('6'), + Div('student_phone_prefix', css_class='col-md-3'), + Div('student_phone', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('7'), + Div('student_id_type', css_class='col-md-3'), + HTML('8'), + Div('student_id_number', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('9'), + Div('student_mother_fullname', css_class='col-md-3'), + HTML('10'), + Div('student_mother_nationality', css_class='col-md-3'), css_class='row', ), css_class='bd-callout bd-callout-warning' @@ -512,7 +814,7 @@ class Meta: class Media: js = ( - 'js/jquery-1.12.3.min.js', + 'js/jquery-3.3.1.min.js', 'js/jquery-ui-1.12.1.js', 'js/validator.js', 'js/registrations.js', @@ -895,6 +1197,63 @@ def save(self, instance=None, request=None): else: messages.warning(request, serializer.errors) + if instance.id: + from django.db.models import Q + st = Student.objects.get(id=instance.student_id) + if st.id: + q_students = Student.objects.filter( + Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + mother_fullname=st.mother_fullname, birthday_year=st.birthday_year, birthday_month= + st.birthday_month, birthday_day=st.birthday_day) + | Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + mother_fullname=st.mother_fullname, id_number=st.id_number) + | Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + id_number=st.id_number, birthday_year=st.birthday_year, + birthday_month=st.birthday_month, + birthday_day=st.birthday_day) + | Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + id_number=st.id_number, birthday_year=st.birthday_year)).exclude(id=st.id) + Q_ALP = Outreach.objects.filter(alp_round=ALPRound.objects.get(current_round=True), student__in=q_students) + if Q_ALP: + try: + DuplicateStd.objects.get(outreach_id=instance.id, is_solved=False) + except DuplicateStd.DoesNotExist: + # SAVING THE CURRENT ROW + q_coordinator = School.objects.get(id=instance.school_id) + model_duplicatestd = DuplicateStd.objects.create( + outreach_id=instance.id, + is_solved=False, + school_type='ALP', + owner=request.user, + coordinator_id=q_coordinator.coordinator_id, + Level_id=instance.level_id, + section_id=instance.section_id, + classroom_id=instance.classroom_id, + education_year=EducationYear.objects.get(current_year=True), + alp_round=ALPRound.objects.get(current_round=True), + ) + model_duplicatestd.save() + # SAVING THE SAME AS IT + for q_alp in Q_ALP: + try: + DuplicateStd.objects.get(outreach_id=q_alp.id, is_solved=False) + except DuplicateStd.DoesNotExist: + # SAVING THE CURRENT ROW + q_coordinator = School.objects.get(id=q_alp.school_id) + model_duplicatestd = DuplicateStd.objects.create( + outreach_id=q_alp.id, + is_solved=False, + school_type='ALP', + owner=q_alp.owner, + coordinator_id=q_coordinator.coordinator_id, + Level_id=q_alp.last_education_level_id, + section_id=q_alp.section_id, + classroom_id=q_alp.classroom_id, + education_year=EducationYear.objects.get(current_year=True), + alp_round=ALPRound.objects.get(current_round=True), + ) + model_duplicatestd.save() + class Meta: model = Outreach fields = ( @@ -933,7 +1292,7 @@ class Meta: class Media: js = ( - 'js/jquery-1.12.3.min.js', + 'js/jquery-3.3.1.min.js', 'js/jquery-ui-1.12.1.js', 'js/validator.js', 'js/registrations.js', @@ -1054,7 +1413,7 @@ class Meta: class Media: js = ( - 'js/jquery-1.12.3.min.js', + 'js/jquery-3.3.1.min.js', 'js/jquery-ui-1.12.1.js', 'js/registrations.js', ) diff --git a/student_registration/alp/migrations/0052_auto_20190928_0838.py b/student_registration/alp/migrations/0052_auto_20190928_0838.py new file mode 100644 index 000000000..50254f0d5 --- /dev/null +++ b/student_registration/alp/migrations/0052_auto_20190928_0838.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-28 05:38 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('alp', '0051_auto_20180413_1223'), + ] + + operations = [ + migrations.AlterField( + model_name='alpround', + name='round_end_date', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0646\u0647\u0627\u064a\u0629 \u0627\u0644\u062c\u0648\u0644\u0629'), + ), + migrations.AlterField( + model_name='alpround', + name='round_start_date', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0628\u062f\u0621 \u0627\u0644\u062c\u0648\u0644\u0629'), + ), + ] diff --git a/student_registration/alp/migrations/0053_auto_20191008_1151.py b/student_registration/alp/migrations/0053_auto_20191008_1151.py new file mode 100644 index 000000000..3b7bdc197 --- /dev/null +++ b/student_registration/alp/migrations/0053_auto_20191008_1151.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-10-08 08:51 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('alp', '0052_auto_20190928_0838'), + ] + + operations = [ + migrations.AlterField( + model_name='alpround', + name='round_end_date', + field=models.DateField(blank=True, null=True, verbose_name='Round end date'), + ), + migrations.AlterField( + model_name='alpround', + name='round_start_date', + field=models.DateField(blank=True, null=True, verbose_name='Round start date'), + ), + ] diff --git a/student_registration/alp/models.py b/student_registration/alp/models.py index 168e29d85..05a0ec389 100644 --- a/student_registration/alp/models.py +++ b/student_registration/alp/models.py @@ -457,15 +457,32 @@ def student_mother_fullname(self): @property def exam_total(self): total = 0 - # if self.exam_result_arabic: - # total += self.exam_result_arabic - if self.exam_result_language: - total += self.exam_result_language - if self.exam_result_math: - total += self.exam_result_math - if self.exam_result_science: - total += self.exam_result_science - return total + if self.level: + Education_Level = EducationLevel.objects.filter(name=self.level) + for education_level in Education_Level: + if education_level.new_calculation: + if education_level.with_arabic: + if self.exam_result_arabic: + total += self.exam_result_arabic + if education_level.with_science: + if self.exam_result_science: + total += self.exam_result_science + if education_level.with_language: + if self.exam_result_language: + total += self.exam_result_language + if education_level.with_math: + if self.exam_result_math: + total += self.exam_result_math + return total + else: + if self.exam_result_language: + total += self.exam_result_language + if self.exam_result_math: + total += self.exam_result_math + if self.exam_result_science: + total += self.exam_result_science + return total + @property def pretest_total(self): diff --git a/student_registration/alp/templatetags/util_tags.py b/student_registration/alp/templatetags/util_tags.py index 9d690b321..5f8d7559d 100644 --- a/student_registration/alp/templatetags/util_tags.py +++ b/student_registration/alp/templatetags/util_tags.py @@ -324,3 +324,15 @@ def get_item_by_key(dictionary, level, age): @register.filter def get_item(dictionary, key): return dictionary.get(key) + + +@register.filter +def is_allowed_create(programme): + from student_registration.clm.utils import is_allowed_create + return is_allowed_create(programme) + + +@register.filter +def is_allowed_edit(programme): + from student_registration.clm.utils import is_allowed_edit + return is_allowed_edit(programme) diff --git a/student_registration/alp/urls.py b/student_registration/alp/urls.py index 09285b920..d9d9340b4 100644 --- a/student_registration/alp/urls.py +++ b/student_registration/alp/urls.py @@ -26,11 +26,21 @@ view=views.PreTestView.as_view(), name='pre_test' ), + url( + regex=r'^pre-test-all/$', + view=views.PreTest_allView.as_view(), + name='pre_test_all' + ), url( regex=r'^pre-test-add/$', view=views.PreTestAddView.as_view(), name='pre_test_add' ), + url( + regex=r'^pre-test-add-all/$', + view=views.PreTestAdd_allView.as_view(), + name='pre_test_add_all' + ), url( regex=r'^pre-test-edit/(?P[\w.@+-]+)/$', view=views.PreTestEditView.as_view(), diff --git a/student_registration/alp/utils.py b/student_registration/alp/utils.py index 77772f321..effba82e0 100644 --- a/student_registration/alp/utils.py +++ b/student_registration/alp/utils.py @@ -28,9 +28,30 @@ def refer_to_level( def assign_to_level(level, exam_total): from student_registration.schools.models import ALPAssignmentMatrix + from student_registration.schools.models import EducationLevel try: - result = ALPAssignmentMatrix.objects.get(level=level, range_start__gt=exam_total, range_end__lte=exam_total) - return result.refer_to + Education_Level = EducationLevel.objects.filter(name=level) + for education_level in Education_Level: + if education_level.new_calculation: + alp_matrix = ALPAssignmentMatrix.objects.filter(level=level, matrix_type='N') + for matrix in alp_matrix: + if exam_total == 0: + if matrix.range_start == 0: + return matrix.refer_to + break + else: + if ((exam_total > matrix.range_start*education_level.coefficient_score + * education_level.note* education_level.sum_subjects/100) + and (exam_total <= matrix.range_end * + education_level.coefficient_score * + education_level.note * education_level.sum_subjects/100)): + return matrix.refer_to + break + + else: + result = ALPAssignmentMatrix.objects.get(level=level, range_start__gt=exam_total, + range_end__lte=exam_total) + return result.refer_to except ALPAssignmentMatrix.DoesNotExist: return None diff --git a/student_registration/alp/views.py b/student_registration/alp/views.py index 9a5d80643..b3c6b00c6 100644 --- a/student_registration/alp/views.py +++ b/student_registration/alp/views.py @@ -17,10 +17,10 @@ from django_tables2.export.views import ExportMixin from .models import Outreach, ALPRound -from .forms import RegistrationForm, PreTestGradingForm, PostTestGradingForm, OutreachForm, PreTestForm +from .forms import RegistrationForm, PreTestGradingForm, PostTestGradingForm, OutreachForm, PreTestForm, PreTest_allForm from .serializers import OutreachSerializer, GeneralSerializer, OutreachSmallSerializer, GradingSerializer from .tables import BootstrapTable, OutreachTable, PreTestTable, PostTestTable, SchoolTable -from .filters import OutreachFilter, PreTestFilter, PostTestFilter, SchoolFilter +from .filters import OutreachFilter, PreTestFilter, PostTestFilter, SchoolFilter, PreTest_allFilter from student_registration.outreach.models import Child from student_registration.outreach.serializers import ChildSerializer from student_registration.users.utils import force_default_language @@ -224,7 +224,7 @@ def get_queryset(self): return Outreach.objects.filter(alp_round=alp_round, school=self.request.user.school_id) -class PreTestView(LoginRequiredMixin, +class PreTest_allView(LoginRequiredMixin, GroupRequiredMixin, FilterView, ExportMixin, @@ -237,7 +237,7 @@ class PreTestView(LoginRequiredMixin, template_name = 'alp/pre_test.html' table = BootstrapTable(Outreach.objects.all(), order_by='id') - filterset_class = PreTestFilter + filterset_class = PreTest_allFilter def get_queryset(self): force_default_language(self.request) @@ -245,6 +245,26 @@ def get_queryset(self): return Outreach.objects.filter(alp_round=alp_round) +class PreTestView(LoginRequiredMixin, + GroupRequiredMixin, + FilterView, + ExportMixin, + SingleTableView, + RequestConfig): + + group_required = [u"TEST_MANAGER", u"CERD"] + table_class = PreTestTable + model = Outreach + template_name = 'alp/pre_test.html' + table = BootstrapTable(Outreach.objects.all(), order_by='id') + filterset_class = PreTestFilter + + def get_queryset(self): + force_default_language(self.request) + alp_round = ALPRound.objects.get(current_pre_test=True) + return Outreach.objects.filter(alp_round=alp_round, school_id=self.request.user.school) + + class PreTestAddView(LoginRequiredMixin, GroupRequiredMixin, FormView): @@ -271,6 +291,32 @@ def form_valid(self, form): return super(PreTestAddView, self).form_valid(form) +class PreTestAdd_allView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'bootstrap4/common_form.html' + form_class = PreTest_allForm + success_url = '/alp/pre-test/' + group_required = [u"TEST_MANAGER", u"CERD"] + + def get_success_url(self): + if self.request.POST.get('save_add_another', None): + return '/alp/pre-test-add-all/' + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(PreTestAdd_allView, self).get_context_data(**kwargs) + + def form_valid(self, form): + form.save(request=self.request) + return super(PreTestAdd_allView, self).form_valid(form) + + class PreTestEditView(LoginRequiredMixin, GroupRequiredMixin, FormView): @@ -290,10 +336,20 @@ def get_context_data(self, **kwargs): def get_form(self, form_class=None): instance = Outreach.objects.get(id=self.kwargs['pk']) if self.request.method == "POST": - return PreTestForm(self.request.POST, instance=instance) + + if has_group(self.request.user, 'ALP_PRE_SCHL_ALL'): + return PreTest_allForm(self.request.POST, instance=instance) + else: + return PreTestForm(self.request.POST, instance=instance) else: data = OutreachSmallSerializer(instance).data - return PreTestForm(data, instance=instance) + data['student_nationality'] = data['student_nationality_id'] + data['student_mother_nationality'] = data['student_mother_nationality_id'] + data['student_id_type'] = data['student_id_type_id'] + if has_group(self.request.user, 'ALP_PRE_SCHL_ALL'): + return PreTest_allForm(data, instance=instance) + else: + return PreTestForm(data, instance=instance) def form_valid(self, form): instance = Outreach.objects.get(id=self.kwargs['pk']) diff --git a/student_registration/attendances/admin.py b/student_registration/attendances/admin.py index d7fe67a5e..b88370bc1 100644 --- a/student_registration/attendances/admin.py +++ b/student_registration/attendances/admin.py @@ -1,14 +1,13 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import, unicode_literals - from django.db import models from django.contrib import admin from import_export.admin import ImportExportModelAdmin -from rangefilter.filter import DateRangeFilter, DateTimeRangeFilter +# from rangefilter.filter import DateRangeFilter, DateTimeRangeFilter from django.utils.translation import ugettext as _ - +from student_registration.attendances.forms import AttendanceDtdAdminForm from import_export.admin import ExportMixin -from import_export import resources, fields, widgets +from import_export import resources from django.contrib.postgres.fields import JSONField from prettyjson import PrettyJSONWidget @@ -25,6 +24,8 @@ BySchoolByDay, Absentee, AttendanceSyncLog, + AttendanceDt, + Student, ) @@ -303,16 +304,16 @@ def queryset(self, request, queryset): class AbsenteeResource(resources.ModelResource): - governorate = fields.Field( - column_name='governorate', - attribute='school', - widget=widgets.ForeignKeyWidget(School, 'location_parent_name') - ) - district = fields.Field( - column_name='district', - attribute='school', - widget=widgets.ForeignKeyWidget(School, 'location_name') - ) + # governorate = fields.Field( + # column_name='governorate', + # attribute='school', + # widget=widgets.ForeignKeyWidget(School, 'location_parent_name') + # ) + # district = fields.Field( + # column_name='district', + # attribute='school', + # widget=widgets.ForeignKeyWidget(School, 'location_name') + # ) class Meta: model = Absentee @@ -358,6 +359,55 @@ class Meta: ) +class AttendanceDtResource(resources.ModelResource): + class Meta: + model = AttendanceDt + fields = ( + 'school__location', + 'school__number', + 'school__name', + 'levelname', + 'classroom_id', + 'classlevel_name', + 'section_id', + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__mother_fullname', + 'student__birthday_day', + 'student__birthday_month', + 'student__birthday_year', + 'student__id_number', + 'student__number', + 'student__sex', + 'attendance_date', + 'is_present', + ) + + +class AttendanceDtAdmin(ExportMixin, admin.ModelAdmin): + resource_class = AttendanceDtResource + list_display = ( + 'school', + 'levelname', + 'classlevel', + 'section', + 'student', + 'attendance_date', + 'is_present', + ) + list_filter = ( + 'is_present', + 'attendance_date', + 'school_id', + 'classroom_id', + 'section', + SchoolTypeFilter, + LocationFilter, + GovernorateFilter, + ) + + class AbsenteeAdmin(ExportMixin, admin.ModelAdmin): resource_class = AbsenteeResource list_display = ( @@ -605,3 +655,4 @@ def get_export_formats(self): admin.site.register(Absentee, AbsenteeAdmin) admin.site.register(AttendedDays, AttendedDaysAdmin) admin.site.register(AttendanceByStudent, AttendanceByStudentAdmin) +admin.site.register(AttendanceDt, AttendanceDtAdmin) diff --git a/student_registration/attendances/forms.py b/student_registration/attendances/forms.py index e69de29bb..eac5aa440 100644 --- a/student_registration/attendances/forms.py +++ b/student_registration/attendances/forms.py @@ -0,0 +1,9 @@ +from django import forms +from student_registration.attendances.models import AttendanceDt + + +class AttendanceDtdAdminForm(forms.ModelForm): + + class Meta: + model = AttendanceDt + fields = '__all__' diff --git a/student_registration/attendances/migrations/0034_auto_20190528_2250.py b/student_registration/attendances/migrations/0034_auto_20190528_2250.py new file mode 100644 index 000000000..e7ce9f2ce --- /dev/null +++ b/student_registration/attendances/migrations/0034_auto_20190528_2250.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-05-28 19:50 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('students', '0042_auto_20171201_1630'), + ('schools', '0037_auto_20190328_1416'), + ('attendances', '0033_auto_20180329_0935'), + ] + + operations = [ + migrations.CreateModel( + name='AttendanceDt', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('is_present', models.BooleanField(default=False)), + ('attendance_date', models.DateField(blank=True, db_index=True, null=True)), + ('levelname', models.CharField(blank=True, default=None, max_length=100, null=True)), + ('attendance', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='attendances', to='attendances.Attendance')), + ('classlevel', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schools.EducationLevel')), + ('classroom', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schools.ClassRoom')), + ('school', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='schools.School')), + ('section', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schools.Section')), + ('student', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='students.Student')), + ], + ), + migrations.AlterIndexTogether( + name='attendancedt', + index_together=set([('attendance_date', 'school')]), + ), + ] diff --git a/student_registration/attendances/models.py b/student_registration/attendances/models.py index 4c7cddfdb..bc86552f1 100644 --- a/student_registration/attendances/models.py +++ b/student_registration/attendances/models.py @@ -226,6 +226,42 @@ def student_number(self): return self.student.number +class AttendanceDt(models.Model): + attendance = models.ForeignKey( + Attendance, + blank=True, null=True, + related_name='attendances', + ) + school = models.ForeignKey( + School, + blank=False, null=True, + ) + classroom = models.ForeignKey( + ClassRoom, + blank=True, null=True, + ) + classlevel = models.ForeignKey( + EducationLevel, + blank=True, null=True, + ) + section = models.ForeignKey( + Section, + blank=True, null=True, + ) + student = models.ForeignKey( + Student, + blank=False, null=True, + ) + is_present = models.BooleanField(default=False) + attendance_date = models.DateField(blank=True, null=True, db_index=True) + levelname = models.CharField(max_length=100, blank=True, null=True, default=None) + + class Meta: + index_together = ( + ('attendance_date', 'school'), + ) + + class AttendanceSyncLog(models.Model): school = models.ForeignKey(School) diff --git a/student_registration/attendances/tasks.py b/student_registration/attendances/tasks.py index c8d15e45e..3c274b5a2 100644 --- a/student_registration/attendances/tasks.py +++ b/student_registration/attendances/tasks.py @@ -3,6 +3,7 @@ from datetime import date from student_registration.taskapp.celery import app +import requests as req @app.task @@ -107,8 +108,27 @@ def find_attendances_gap_grouped(days): @app.task def calculate_last_attendance_date(): from .models import Absentee + from student_registration.schools.models import EducationYear - queryset = Absentee.objects.all() + current_year = EducationYear.objects.get(current_year=True) + queryset = Absentee.objects.filter(education_year_id=current_year) + #queryset = Absentee.objects.filter(school_id=123) + + for line in queryset: + registry = line.student.current_secondshift_registration() + if not registry: + continue + registry.update(last_attendance_date=line.last_attendance_date, + last_absent_date=line.last_absent_date) + + +def geo_calculate_last_attendance_date(from_school, to_school): + from .models import Absentee + from student_registration.schools.models import EducationYear + + #current_year = EducationYear.objects.get(current_year=True) + queryset = Absentee.objects.all().order_by('school__number')#education_year_id=current_year + queryset = queryset.filter(school__number__gte=from_school, school__number__lte=to_school) for line in queryset: registry = line.student.current_secondshift_registration() @@ -151,11 +171,11 @@ def reset_absentees(): @app.task def calculate_attendances_by_student(from_date=None, to_date=None): from .utils import calculate_absentees - from .models import Attendance, Absentee + from .models import Attendance queryset = Attendance.objects.exclude(close_reason__isnull=False)\ .exclude(students__isnull=True).order_by('attendance_date') - # queryset = queryset.filter(school__number='340') + #queryset = queryset.filter(school__id='123') # if not from_date: # Absentee.objects.all().delete() @@ -190,3 +210,58 @@ def split_attendance(school_type='2nd-shift'): queryset.update(education_year=education_year) queryset.update(school_type=school_type) + + +def geo_calculate_attendances_per_day(from_school, to_school, from_date, to_date, txt_std): + from .models import Attendance, Student + from .utils import add_attendance + + queryset = Attendance.objects.exclude(close_reason__isnull=False).exclude(students__isnull=True) + queryset = queryset.filter(attendance_date__gte=from_date, attendance_date__lte=to_date, + school__number__gte=from_school, school__number__lte=to_school).\ + order_by('attendance_date', 'school__number') + std_id = list() + if txt_std: + std = Student.objects.filter(number=txt_std) + for st in std: + std_id.append(st.id) + for line in queryset: + if not line.students: + continue + for level_section in line.students: + attendances = line.students[level_section] + students = attendances['students'] + if std_id: + for student_in in students: + for st in std_id: + if str(st) == str(student_in['student_id']): + add_attendance(attendance=line, students=students, std_id=str(st)) + else: + add_attendance(attendance=line, students=students, std_id=txt_std) + + +def geo_calculate_attendances_by_student(from_school, to_school, from_date, to_date): + from .utils import calculate_absentees + from .models import Attendance + from student_registration.schools.models import EducationYear + + # current_year = EducationYear.objects.get(current_year=True) + queryset = Attendance.objects.exclude(close_reason__isnull=False)\ + .exclude(students__isnull=True).order_by('school__number', 'attendance_date') + # queryset = queryset.filter(education_year_id=current_year) + if from_date: + queryset = queryset.filter(attendance_date__gte=from_date) + if to_date: + queryset = queryset.filter(attendance_date__lte=to_date) + if from_school: + queryset = queryset.filter(school__number__gte=from_school) + if to_school: + queryset = queryset.filter(school__number__lte=to_school) + + for line in queryset: + if not line.students: + continue + for level_section in line.students: + attendances = line.students[level_section] + students = attendances['students'] + calculate_absentees(attendance=line, students=students) diff --git a/student_registration/attendances/utils.py b/student_registration/attendances/utils.py index 45fffe137..dd6bdd5a3 100644 --- a/student_registration/attendances/utils.py +++ b/student_registration/attendances/utils.py @@ -94,6 +94,106 @@ def find_attendances(governorate=None, student_id=None, from_date=None, to_date= return data +def fill_attendancedt(attendance, students): + from .models import AttendanceDt, EducationYear + from student_registration.enrollments.models import Enrollment + for student in students: + attendance_dt = AttendanceDt.objects.filter(attendance_date=attendance.attendance_date, + student_id=student['student_id']) + v_count_attendancedt = AttendanceDt.objects.filter(attendance_date=attendance.attendance_date, + student_id=student['student_id']).count() + if v_count_attendancedt == 0: + attendance_dt = AttendanceDt.objects.create( + student_id=student['student_id'], + attendance_date=attendance.attendance_date, + is_present=student['status'], + school_id=attendance.school_id, + section_id=student['section'], + classlevel_id=student['level'], + attendance_id=attendance.id, + levelname=student['level_name'] + ) + attendance_dt.save() + else: + attendance_dt.update(is_present=student['status']) + current_year = EducationYear.objects.get(current_year=True) + if student['status'] == 'True': + try: + Enr = Enrollment.objects.filter(education_year=current_year, school_id=attendance.school_id, + student_id=student['student_id'], section_id=student['section'], + classroom_id=student['level']) + for enr in Enr: + if not enr.last_attendance_date: + enr.last_attendance_date = attendance.attendance_date + enr.nb_consecutiveabsences = 0 + enr.save() + else: + if attendance.attendance_date > enr.last_attendance_date: + enr.last_attendance_date = attendance.attendance_date + enr.nb_consecutiveabsences = 0 + enr.save() + except Enrollment.DoesNotExist: + enr = '' + else: + try: + Enr = Enrollment.objects.filter(education_year=current_year, school_id=attendance.school_id, + student_id=student['student_id'], section_id=student['section'], + classroom_id=student['level']) + for enr in Enr: + if not enr.last_absent_date: + enr.last_absent_date = attendance.attendance_date + enr.save() + else: + if attendance.attendance_date > enr.last_absent_date: + enr.last_absent_date = attendance.attendance_date + if enr.nb_consecutiveabsences: + enr.nb_consecutiveabsences += 1 + else: + enr.nb_consecutiveabsences = 1 + enr.save() + except Enrollment.DoesNotExist: + enr = '' + + +def add_attendance(attendance, students, std_id): + from .models import AttendanceDt + + for student in students: + if std_id != "": + if std_id == student['student_id']: + try: + AttendanceDt.objects.get(student_id=std_id, attendance_date=attendance.attendance_date) + except AttendanceDt.DoesNotExist: + attendance_dt = AttendanceDt.objects.create( + student_id=student['student_id'], + attendance_date=attendance.attendance_date, + is_present=student['status'], + school_id=attendance.school_id, + section_id=student['section'], + classlevel_id=student['level'], + classroom_id=attendance.classroom_id, + attendance_id=attendance.id, + levelname=student['level_name'], + ) + attendance_dt.save() + else: + try: + AttendanceDt.objects.get(student_id=student['student_id'], attendance_date=attendance.attendance_date) + except AttendanceDt.DoesNotExist: + attendance_dt = AttendanceDt.objects.create( + student_id=student['student_id'], + attendance_date=attendance.attendance_date, + is_present=student['status'], + school_id=attendance.school_id, + section_id=student['section'], + classlevel_id=student['level'], + classroom_id=attendance.classroom_id, + attendance_id=attendance.id, + levelname=student['level_name'], + ) + attendance_dt.save() + + def calculate_absentees(attendance, students): from .models import Absentee diff --git a/student_registration/attendances/views.py b/student_registration/attendances/views.py index ea1216aa0..61b554fa7 100644 --- a/student_registration/attendances/views.py +++ b/student_registration/attendances/views.py @@ -27,7 +27,7 @@ from student_registration.alp.models import Outreach, ALPRound from student_registration.backends.tasks import export_attendance from student_registration.users.utils import force_default_language -from .utils import find_attendances, calculate_absentees +from .utils import find_attendances, fill_attendancedt #calculate_absentees from .models import Attendance, Absentee from .serializers import AttendanceSerializer, AbsenteeSerializer, AttendanceExportSerializer @@ -93,6 +93,8 @@ def update(self, request, *args, **kwargs): elif level_section: instance.students[level_section] = data[level_section] instance.save() + if instance.students: + fill_attendancedt(instance, data[level_section]['students']) # calculate_absentees(instance, data[level_section]['students']) return JsonResponse({'status': status.HTTP_200_OK, 'data': instance.id}) @@ -132,7 +134,6 @@ class AttendanceView(LoginRequiredMixin, model = Attendance template_name = 'attendances/school_day.html' group_required = [u"ATTENDANCE"] - def get_context_data(self, **kwargs): force_default_language(self.request) level = 0 @@ -178,7 +179,8 @@ def get_context_data(self, **kwargs): # education_year = EducationYear.objects.get(current_year=True) queryset = Enrollment.objects.exclude(last_moved_date__lt=selected_date, - moved=True).filter(school_id=school, education_year__current_year=True) + moved=True).filter(school_id=school, education_year__current_year=True, + dropout_status=False) # queryset = Enrollment.objects.exclude(moved=True).filter(school_id=school, education_year=education_year) registrations = queryset.filter( classroom__isnull=False, diff --git a/student_registration/backends/gistfile.py b/student_registration/backends/gistfile.py new file mode 100644 index 000000000..98ab7607a --- /dev/null +++ b/student_registration/backends/gistfile.py @@ -0,0 +1,76 @@ +import csv, codecs, cStringIO + +from django.http import HttpResponse + +# also include UnicodeWriter from the Python docs http://docs.python.org/library/csv.html + + +class UTF8Recoder: + """ + Iterator that reads an encoded stream and reencodes the input to UTF-8 + """ + def __init__(self, f, encoding): + self.reader = codecs.getreader(encoding)(f) + + def __iter__(self): + return self + + def next(self): + return self.reader.next().encode("utf-8") + + +class UnicodeWriter: + """ + A CSV writer which will write rows to CSV file "f", + which is encoded in the given encoding. + """ + + def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds): + # Redirect output to a queue + self.queue = cStringIO.StringIO() + self.writer = csv.writer(self.queue, dialect=dialect, **kwds) + self.stream = f + self.encoder = codecs.getincrementalencoder(encoding)() + + def writerow(self, row): + self.writer.writerow([s.encode("utf-8") for s in row]) + data = self.queue.getvalue() + data = data.decode("utf-8") + data = self.encoder.encode(data) + self.stream.write(data) + self.queue.truncate(0) + + def writerows(self, rows): + for row in rows: + self.writerow(row) + + +class ExportModel(object): + + @staticmethod + def as_csv(meta): + + with open(meta['file'], 'w+') as f: + writer = UnicodeWriter(f, meta['fields'], encoding='utf-8') + writer.writerow(meta['header']) + for obj in meta['queryset']: + if isinstance(obj, dict): + row = [unicode(obj[field]) for field in meta['fields']] + # row = [obj[field] for field in meta['fields']] + else: + row = [unicode(getattr(obj, field)) for field in meta['fields']] + # row = [getattr(obj, field) for field in meta['fields']] + writer.writerow(row) + path = f.name + return path + + +def get_model_as_csv_file_response(meta, content_type, filename): + """ + Call this function from your model admin + """ + with open(ExportModel.as_csv(meta), 'r') as f: + response = HttpResponse(f.read(), content_type=content_type) + # response['Content-Disposition'] = 'attachment; filename=Extraction.csv;' + response['Content-Disposition'] = 'attachment; filename=%s;' % filename + return response diff --git a/student_registration/backends/tasks.py b/student_registration/backends/tasks.py index 96f7e757d..e997618c8 100644 --- a/student_registration/backends/tasks.py +++ b/student_registration/backends/tasks.py @@ -15,12 +15,15 @@ def export_2ndshift(params=None, return_data=False): from student_registration.enrollments.models import Enrollment title = '2nd-shit-all' - queryset = Enrollment.objects.all() + #queryset = Enrollment.objects.all() + queryset = Enrollment.objects.filter(moved=False, dropout_status=False) + if 'current' in params: title = '2nd-shit-current' queryset = queryset.filter(education_year__current_year=True) if 'year' in params: queryset = queryset.filter(education_year_id=params['year']) + if 'classroom' in params and params['classroom']: queryset = queryset.filter(classroom_id=params['classroom']) if 'school' in params: @@ -85,8 +88,13 @@ def export_2ndshift(params=None, return_data=False): 'created': 'created', 'modified': 'modified', 'dropout_status': 'dropout_status', + 'dropout_date': _('dropout date'), 'disabled': 'disabled', 'moved': 'moved', + 'last_moved_date': _('last moved date'), + 'student__number': 'student number', + 'student__id': 'student id', + 'id': 'enrollment id', } queryset = queryset.values( @@ -146,8 +154,13 @@ def export_2ndshift(params=None, return_data=False): 'created', 'modified', 'dropout_status', + 'dropout_date', 'disabled', 'moved', + 'last_moved_date', + 'student__number', + 'student__id', + 'id', ) return render_to_csv_response(queryset, field_header_map=headers) @@ -166,9 +179,15 @@ def export_2ndshift_gradings(params=None, return_data=False): from student_registration.enrollments.models import EnrollmentGrading from student_registration.schools.models import EducationYear current = EducationYear.objects.get(current_year=True) - title = '2nd-shift-grading-current' - queryset = EnrollmentGrading.objects.exclude(enrollment__isnull=True).filter(enrollment__education_year=current) + if 'current' in params and params['current']: + if params['current'] == 'true': + queryset = EnrollmentGrading.objects.exclude(enrollment__isnull=True).filter(enrollment__education_year=current) + if params['current'] == 'false': + current = EducationYear.objects.filter(current_year=False).order_by('-id')[0] + queryset = EnrollmentGrading.objects.exclude(enrollment__isnull=True).filter(enrollment__education_year=current) + else: + queryset = EnrollmentGrading.objects.exclude(enrollment__isnull=True).filter(enrollment__education_year=current) if 'school' in params: queryset = queryset.filter(enrollment__school_id=params['school']) if 'classroom' in params and params['classroom']: @@ -224,6 +243,8 @@ def export_2ndshift_gradings(params=None, return_data=False): 'exam_result_education': _('Education'), 'exam_result_language': _('Foreign language'), 'exam_result_arabic': _('Arabic'), + 'enrollment__dropout_status': _('dropout_status'), + 'enrollment__dropout_date': _('dropout date'), } queryset = queryset.values( @@ -269,6 +290,8 @@ def export_2ndshift_gradings(params=None, return_data=False): 'exam_result_education', 'exam_result_language', 'exam_result_arabic', + 'enrollment__dropout_status', + 'enrollment__dropout_date', ) return render_to_csv_response(queryset, field_header_map=headers) @@ -285,6 +308,7 @@ def export_2ndshift_gradings(params=None, return_data=False): @app.task def export_alp(params=None, return_data=False): from student_registration.alp.models import Outreach, ALPRound + from django.db.models import F title = 'alp-all' queryset = Outreach.objects.all() @@ -322,6 +346,12 @@ def export_alp(params=None, return_data=False): if 'school' in params: queryset = queryset.filter(school_id=params['school']) + #for line in queryset: + # if line.student.phone: + # if not line.student.std_phone: + # line.student.std_phone = line.student.phone_prefix+'-'+line.student.phone + # line.save() + headers = { 'school__number': _('School number'), 'school__name': _('School'), @@ -337,8 +367,7 @@ def export_alp(params=None, return_data=False): 'student__birthday_year': _('year'), 'student__birthday_month': _('month'), 'student__birthday_day': _('day'), - 'student__phone': _('Phone number'), - 'student__phone_prefix': _('Phone prefix'), + 'student_phone': _('Phone number'), 'student__registered_in_unhcr': _('Registered in UNHCR'), 'student__id_type__name': _('Student ID Type'), 'student__id_number': _('Student ID Number'), @@ -388,9 +417,12 @@ def export_alp(params=None, return_data=False): 'modified_by__username': 'modified_by', 'created': 'created', 'modified': 'modified', + 'student__number': _('student number'), } - queryset = queryset.values( + queryset = queryset.extra(select={ + 'student_phone': " concat(phone_prefix,phone) " + }).values( 'school__number', 'school__name', 'school__location__name', @@ -405,8 +437,7 @@ def export_alp(params=None, return_data=False): 'student__birthday_year', 'student__birthday_month', 'student__birthday_day', - 'student__phone', - 'student__phone_prefix', + 'student_phone', 'student__registered_in_unhcr', 'student__id_type__name', 'student__id_number', @@ -455,6 +486,7 @@ def export_alp(params=None, return_data=False): 'student_outreached', 'have_barcode', 'outreach_barcode', + 'student__number', ) return render_to_csv_response(queryset, field_header_map=headers) @@ -856,3 +888,74 @@ def export_winterization(return_data=False): return data store_file(data, timestamp) return True + +@app.task +def export_last_attendance(params=None, return_data=False): + from student_registration.attendances.tasks import geo_calculate_attendances_by_student, calculate_last_attendance_date + from student_registration.enrollments.models import Enrollment + + calculate_last_attendance_date() + title = 'Last_Attendance' + + queryset = Enrollment.objects.filter(education_year__current_year=True) + + headers = { + 'school__number': _('School number'), + 'school__name': _('School'), + 'school__location__name': _('District'), + 'school__location__parent__name': _('Governorate'), + 'student__number': 'student number', + 'student__first_name': _('Student first name'), + 'student__father_name': _('Student father name'), + 'student__last_name': _('Student last name'), + 'student__mother_fullname': _('Mother fullname'), + 'student__sex': _('Sex'), + 'student__birthday_year': _('year'), + 'student__birthday_month': _('month'), + 'student__birthday_day': _('day'), + 'student__place_of_birth': _('Place of birth'), + 'student__phone': _('Phone number'), + 'student__phone_prefix': _('Phone prefix'), + + 'student__id_number': _('Student ID Number'), + 'student__nationality__name': _('Student nationality'), + + 'section__name': _('Current Section'), + 'classroom__name': _('Current Class'), + + 'last_attendance_date': _('Last attendance date'), + 'last_absent_date': _('Last absent date'), + + } + + queryset = queryset.values( + 'school__number', + 'school__name', + 'school__location__name', + 'school__location__parent__name', + 'student__number', + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__mother_fullname', + 'student__sex', + 'student__birthday_year', + 'student__birthday_month', + 'student__birthday_day', + 'student__place_of_birth', + 'student__phone', + 'student__phone_prefix', + + 'student__id_number', + 'student__nationality__name', + + 'section__name', + 'classroom__name', + + 'last_attendance_date', + 'last_absent_date', + + ) + + return render_to_csv_response(queryset, field_header_map=headers) + diff --git a/student_registration/backends/utils.py b/student_registration/backends/utils.py index 084990aa0..369b8ab3f 100644 --- a/student_registration/backends/utils.py +++ b/student_registration/backends/utils.py @@ -27,20 +27,20 @@ def post_data(protocol, url, apifunc, token, data): headers = {"Content-type": "application/json", "Authorization": token, "HTTP_REFERER": url, "Cookie": "token="+token} - if protocol == 'HTTPS': - conn = httplib.HTTPSConnection(url) - else: - conn = httplib.HTTPConnection(url) - conn.request('POST', apifunc, params, headers) - response = conn.getresponse() - result = response.read() - - if not response.status == 201: - if response.status == 400: - raise Exception(str(response.status) + response.reason + response.read()) - else: - raise Exception(str(response.status) + response.reason) - - conn.close() - - return result + # if protocol == 'HTTPS': + # conn = httplib.HTTPSConnection(url) + # else: + # conn = httplib.HTTPConnection(url) + # conn.request('POST', apifunc, params, headers) + # response = conn.getresponse() + # result = response.read() + # + # if not response.status == 201: + # if response.status == 400: + # raise Exception(str(response.status) + response.reason + response.read()) + # else: + # raise Exception(str(response.status) + response.reason) + # + # conn.close() + # + # return result diff --git a/student_registration/cache_control_middleware.py b/student_registration/cache_control_middleware.py new file mode 100755 index 000000000..47073ca68 --- /dev/null +++ b/student_registration/cache_control_middleware.py @@ -0,0 +1,11 @@ +class CacheControlMiddleware: + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + response = self.get_response(request) + + if request.is_secure: + response['Cache-Control'] = 'no-cache' + + return response diff --git a/student_registration/clm/admin.py b/student_registration/clm/admin.py index 413201099..29d77b6d3 100644 --- a/student_registration/clm/admin.py +++ b/student_registration/clm/admin.py @@ -6,7 +6,7 @@ from import_export import fields from import_export.admin import ImportExportModelAdmin -from .forms import BLNAdminForm, RSAdminForm, CBECEAdminForm +from .forms import BLNAdminForm, ABLNAdminForm, RSAdminForm, CBECEAdminForm from .models import ( Assessment, Cycle, @@ -14,6 +14,7 @@ Referral, Disability, BLN, + ABLN, RS, CBECE ) @@ -570,12 +571,166 @@ def get_export_formats(self): return get_default_export_formats() +class ABLNResource(resources.ModelResource): + arabic_improvement = fields.Field( + column_name='arabic improvement', + attribute='arabic_improvement', + ) + english_improvement = fields.Field( + column_name='english_improvement', + attribute='english_improvement', + ) + french_improvement = fields.Field( + column_name='french_improvement', + attribute='french_improvement', + ) + math_improvement = fields.Field( + column_name='math_improvement', + attribute='math_improvement', + ) + assessment_improvement = fields.Field( + column_name='assessment_improvement', + attribute='assessment_improvement', + ) + + pre_test_arabic = fields.Field(column_name='pre test arabic') + pre_test_foreign_language = fields.Field(column_name='pre_test_foreign_language') + pre_test_math = fields.Field(column_name='pre_test_math') + + post_test_arabic = fields.Field(column_name='post_test_arabic') + post_test_foreign_language = fields.Field(column_name='post_test_foreign_language') + post_test_math = fields.Field(column_name='post_test_math') + + class Meta: + fields = ( + 'id', + 'partner__name', + 'new_registry', + 'student_outreached', + 'have_barcode', + 'outreach_barcode', + 'round__name', + 'governorate__name', + 'district__name', + 'location', + 'language', + 'student__id', + 'student__id_type', + 'student__id_number', + 'student__number', + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__mother_fullname', + 'student__birthday_year', + 'student__birthday_month', + 'student__birthday_day', + 'student__nationality__name', + 'student__sex', + 'student__p_code', + 'disability__name', + 'internal_number', + 'comments', + 'hh_educational_level', + 'student__family_status', + 'student__have_children', + 'have_labour', + 'labours', + 'labour_hours', + 'pre_test_arabic', + 'pre_test_foreign_language', + 'pre_test_math', + 'pre_test_score', + 'post_test_arabic', + 'post_test_foreign_language', + 'post_test_math', + 'post_test_score', + 'arabic_improvement', + 'english_improvement', + 'french_improvement', + 'math_improvement', + 'assessment_improvement', + 'participation', + 'barriers', + 'learning_result', + 'created', + 'modified' + ) + model = ABLN + export_order = fields + + def dehydrate_pre_test_arabic(self, obj): + return obj.get_assessment_value('arabic', 'pre_test') + + def dehydrate_pre_test_foreign_language(self, obj): + return obj.get_assessment_value('foreign_language', 'pre_test') + + def dehydrate_pre_test_math(self, obj): + return obj.get_assessment_value('math', 'pre_test') + + def dehydrate_post_test_arabic(self, obj): + return obj.get_assessment_value('arabic', 'post_test') + + def dehydrate_post_test_foreign_language(self, obj): + return obj.get_assessment_value('foreign_language', 'post_test') + + def dehydrate_post_test_math(self, obj): + return obj.get_assessment_value('math', 'post_test') + + +class ABLNAdmin(ImportExportModelAdmin): + resource_class = ABLNResource + form = ABLNAdminForm + # fields = '__all__' + + list_display = ( + 'student', + 'governorate', + 'district', + 'partner', + 'created', + 'modified', + ) + list_filter = ( + 'round', + 'governorate', + 'district', + 'partner', + 'language', + 'student__sex', + 'student__nationality', + 'disability', + 'hh_educational_level', + 'student__family_status', + 'student__have_children', + 'have_labour', + 'labours', + 'labour_hours', + 'participation', + 'barriers', + 'learning_result', + 'created', + 'modified', + ) + search_fields = ( + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__mother_fullname', + ) + + def get_export_formats(self): + from student_registration.users.utils import get_default_export_formats + return get_default_export_formats() + + class DisabilityResource(resources.ModelResource): class Meta: model = Disability fields = ( 'id', 'name', + 'name_en', ) export_order = fields @@ -591,5 +746,6 @@ class DisabilityAdmin(ImportExportModelAdmin): admin.site.register(Disability, DisabilityAdmin) admin.site.register(BLN, BLNAdmin) +admin.site.register(ABLN, ABLNAdmin) admin.site.register(RS, RSAdmin) admin.site.register(CBECE, CBECEAdmin) diff --git a/student_registration/clm/filters.py b/student_registration/clm/filters.py index b5d1d8873..9ea21a6b9 100644 --- a/student_registration/clm/filters.py +++ b/student_registration/clm/filters.py @@ -5,7 +5,13 @@ from student_registration.locations.models import Location from student_registration.schools.models import CLMRound, School, Section, ClassRoom from student_registration.students.models import Nationality -from .models import BLN, RS, CBECE, Cycle +from .models import ( + BLN, + ABLN, + RS, + CBECE, + Cycle, + Disability) class CommonFilter(FilterSet): @@ -13,6 +19,7 @@ class CommonFilter(FilterSet): governorate = ModelChoiceFilter(queryset=Location.objects.filter(parent__isnull=True), empty_label=_('Governorate')) district = ModelChoiceFilter(queryset=Location.objects.filter(parent__isnull=False), empty_label=_('District')) student__nationality = ModelChoiceFilter(queryset=Nationality.objects.all(), empty_label=_('Nationality')) + disability = ModelChoiceFilter(queryset=Disability.objects.filter(active=True), empty_label=_('Disability')) class BLNFilter(CommonFilter): @@ -22,6 +29,30 @@ class Meta: fields = { 'round': ['exact'], 'student__id_number': ['contains'], + 'student__number': ['contains'], + 'internal_number': ['contains'], + 'student__first_name': ['contains'], + 'student__father_name': ['contains'], + 'student__last_name': ['contains'], + 'student__mother_fullname': ['contains'], + 'student__nationality': ['exact'], + 'governorate': ['exact'], + 'district': ['exact'], + # 'participation': ['exact'], + 'learning_result': ['exact'], + 'owner__username': ['contains'], + 'disability': ['exact'], + } + + +class ABLNFilter(CommonFilter): + + class Meta: + model = ABLN + fields = { + 'round': ['exact'], + 'student__id_number': ['contains'], + 'student__number': ['contains'], 'internal_number': ['contains'], 'student__first_name': ['contains'], 'student__father_name': ['contains'], @@ -33,6 +64,7 @@ class Meta: 'participation': ['exact'], 'learning_result': ['exact'], 'owner__username': ['contains'], + 'disability': ['exact'], } @@ -47,6 +79,7 @@ class Meta: fields = { 'round': ['exact'], 'student__id_number': ['contains'], + 'student__number': ['contains'], 'internal_number': ['contains'], 'student__first_name': ['contains'], 'student__father_name': ['contains'], @@ -65,6 +98,7 @@ class Meta: 'participation': ['exact'], 'learning_result': ['exact'], 'owner__username': ['contains'], + 'disability': ['exact'], } @@ -77,6 +111,7 @@ class Meta: fields = { 'round': ['exact'], 'student__id_number': ['contains'], + 'student__number': ['contains'], 'internal_number': ['contains'], 'student__first_name': ['contains'], 'student__father_name': ['contains'], @@ -91,4 +126,5 @@ class Meta: 'participation': ['exact'], 'learning_result': ['exact'], 'owner__username': ['contains'], + 'disability': ['exact'], } diff --git a/student_registration/clm/forms.py b/student_registration/clm/forms.py index 06893850a..fa77c3c54 100644 --- a/student_registration/clm/forms.py +++ b/student_registration/clm/forms.py @@ -14,6 +14,7 @@ Student, Person, Nationality, + IDType, ) from student_registration.schools.models import ( School, @@ -25,6 +26,7 @@ from .models import ( CLM, BLN, + ABLN, RS, CBECE, Cycle, @@ -32,7 +34,7 @@ Assessment, CLMRound, ) -from .serializers import BLNSerializer, RSSerializer, CBECESerializer +from .serializers import BLNSerializer, RSSerializer, CBECESerializer, ABLNSerializer YES_NO_CHOICE = ((1, _("Yes")), (0, _("No"))) @@ -72,17 +74,18 @@ ('less_than_5days', _('Less than 5 absence days')), ('5_10_days', _('5 to 10 absence days')), ('10_15_days', _('10 to 15 absence days')), - ('more_than_15days', _('More than 15 absence days')) + ('more_than_15days', _('More than 15 absence days')), + ('no_absence', _('No Absence')) ) LEARNING_RESULT = ( ('', '----------'), ('repeat_level', _('Repeat level')), - ('graduated_next_level', _('Graduated to the next level')), - ('graduated_to_formal_kg', _('Graduated to formal education - KG')), - ('graduated_to_formal_level1', _('Graduated to formal education - Level 1')), + ('graduated_next_level', _('Referred to the next level')), + ('graduated_to_formal_kg', _('Referred to formal education - KG')), + ('graduated_to_formal_level1', _('Referred to formal education - Level 1')), ('referred_to_another_program', _('Referred to another program')), - # ('dropout', _('Dropout from school')) + ('dropout', _('Dropout, referral not possible')) ) @@ -97,14 +100,14 @@ class CommonForm(forms.ModelForm): student_outreached = forms.ChoiceField( label=_("Student outreached?"), widget=forms.Select, required=True, - choices=(('yes', _("Yes")), ('no', _("No"))), - initial='yes' + choices=(('no', _("No")), ('yes', _("Yes"))), + initial='no' ) have_barcode = forms.ChoiceField( label=_("Have barcode with him?"), widget=forms.Select, required=True, - choices=(('yes', _("Yes")), ('no', _("No"))), - initial='yes' + choices=(('no', _("No")), ('yes', _("Yes"))), + initial='no' ) search_clm_student = forms.CharField( label=_("Search a student"), @@ -122,14 +125,14 @@ class CommonForm(forms.ModelForm): label=_('Governorate'), empty_label='-------', required=True, to_field_name='id', - initial=0 + # initial=0 ) district = forms.ModelChoiceField( queryset=Location.objects.filter(parent__isnull=False), widget=forms.Select, label=_('District'), empty_label='-------', required=True, to_field_name='id', - initial=0 + # initial=0 ) round = forms.ModelChoiceField( queryset=CLMRound.objects.all(), widget=forms.Select, @@ -209,31 +212,19 @@ class CommonForm(forms.ModelForm): ) disability = forms.ModelChoiceField( - queryset=Disability.objects.all(), widget=forms.Select, + queryset=Disability.objects.filter(active=True), widget=forms.Select, label=_('Does the child have any disability or special need?'), required=True, to_field_name='id', initial=1 ) - - have_labour = forms.MultipleChoiceField( - label=_('Does the child participate in work?'), - choices=CLM.HAVE_LABOUR, - widget=forms.CheckboxSelectMultiple, - required=False, initial='no' - ) - labours = forms.MultipleChoiceField( - label=_('What is the type of work ?'), - choices=CLM.LABOURS, - widget=forms.CheckboxSelectMultiple, - required=False - ) - labour_hours = forms.CharField( - label=_('How many hours does this child work in a day?'), - widget=forms.TextInput, required=False - ) hh_educational_level = forms.ModelChoiceField( - queryset=EducationalLevel.objects.all(), widget=forms.Select, - label=_('What is the educational level of a person who is valuable to the child?'), + queryset=EducationalLevel.objects.exclude(id=3), widget=forms.Select, + label=_('What is the educational level of the mother?'), + required=False, to_field_name='id', + ) + father_educational_level = forms.ModelChoiceField( + queryset=EducationalLevel.objects.exclude(id=3), widget=forms.Select, + label=_('What is the educational level of the father?'), required=False, to_field_name='id', ) @@ -242,32 +233,32 @@ class CommonForm(forms.ModelForm): student_outreach_child = forms.CharField(widget=forms.HiddenInput, required=False) clm_type = forms.CharField(widget=forms.HiddenInput, required=False) - participation = forms.ChoiceField( - label=_('How was the level of child participation in the program?'), - widget=forms.Select, required=False, - choices=PARTICIPATION, - initial='' - ) - barriers = forms.MultipleChoiceField( - label=_('The main barriers affecting the daily attendance and performance of the child or drop out of school?'), - choices=CLM.BARRIERS, - widget=forms.CheckboxSelectMultiple, - required=False - ) - learning_result = forms.ChoiceField( - label=_('Based on the overall score, what is the recommended learning path?'), - widget=forms.Select, required=False, - choices=( - ('', '----------'), - ('repeat_level', _('Repeat level')), - ('graduated_next_level', _('Graduated to the next level')), - ('graduated_to_formal_kg', _('Graduated to formal education - KG')), - ('graduated_to_formal_level1', _('Graduated to formal education - Level 1')), - ('referred_to_another_program', _('Referred to another program')), - # ('dropout', _('Dropout from school')) - ), - initial='' - ) + # participation = forms.ChoiceField( + # label=_('How was the level of child participation in the program?'), + # widget=forms.Select, required=False, + # choices=PARTICIPATION, + # initial='' + # ) + # barriers = forms.MultipleChoiceField( + # label=_('The main barriers affecting the daily attendance and performance of the child or drop out of programme? (Select more than one if applicable)'), + # choices=CLM.BARRIERS, + # widget=forms.CheckboxSelectMultiple, + # required=False + # ) + # learning_result = forms.ChoiceField( + # label=_('Based on the overall score, what is the recommended learning path?'), + # widget=forms.Select, required=False, + # choices=( + # ('', '----------'), + # ('repeat_level', _('Repeat level')), + # ('graduated_next_level', _('Referred to the next level')), + # ('graduated_to_formal_kg', _('Referred to formal education - KG')), + # ('graduated_to_formal_level1', _('Referred to formal education - Level 1')), + # ('referred_to_another_program', _('Referred to another program')), + # # ('dropout', _('Dropout from school')) + # ), + # initial='' + # ) def __init__(self, *args, **kwargs): super(CommonForm, self).__init__(*args, **kwargs) @@ -291,6 +282,7 @@ def save(self, request=None, instance=None, serializer=None): instance = serializer.update(validated_data=serializer.validated_data, instance=instance) instance.modified_by = request.user instance.save() + request.session['instance_id'] = instance.id messages.success(request, _('Your data has been sent successfully to the server')) else: messages.warning(request, serializer.errors) @@ -302,6 +294,7 @@ def save(self, request=None, instance=None, serializer=None): instance.modified_by = request.user instance.partner = request.user.partner instance.save() + request.session['instance_id'] = instance.id messages.success(request, _('Your data has been sent successfully to the server')) else: messages.warning(request, serializer.errors) @@ -311,6 +304,7 @@ def save(self, request=None, instance=None, serializer=None): class Meta: model = CLM fields = ( + 'first_attendance_date', 'round', 'new_registry', 'student_outreached', @@ -332,25 +326,27 @@ class Meta: 'student_id_number', 'internal_number', 'disability', - 'have_labour', - 'labours', - 'labour_hours', + # 'have_labour', + # 'labours', + # 'labour_hours', 'hh_educational_level', - 'participation', - 'barriers', - 'learning_result', + 'father_educational_level', + # 'participation', + # 'barriers', + # 'learning_result', 'student_id', 'enrollment_id', 'student_outreach_child', 'comments', - 'unsuccessful_posttest_reason', + 'unsuccessful_pretest_reason', + # 'unsuccessful_posttest_reason', ) initial_fields = fields widgets = {} class Media: js = ( - # 'js/jquery-1.12.3.min.js', + # 'js/jquery-3.3.1.min.js', # 'js/jquery-ui-1.12.1.js', # 'js/validator.js', # 'js/registrations.js', @@ -359,22 +355,35 @@ class Media: class BLNForm(CommonForm): - # cycle = forms.ModelChoiceField( - # empty_label='----------', - # queryset=Cycle.objects.all(), widget=forms.Select, - # label=_('In which cycle is this child registered?'), - # required=True, to_field_name='id', - # initial=0 - # ) - # referral = forms.MultipleChoiceField( - # label=_('Where was the child referred?'), - # choices=CLM.REFERRAL, - # widget=forms.CheckboxSelectMultiple, - # required=True, - # ) YEARS_BLN = list(((str(x), x) for x in range(Person.CURRENT_YEAR - 16, Person.CURRENT_YEAR))) YEARS_BLN.insert(0, ('', '---------')) + # participation = forms.ChoiceField( + # label=_('How was the level of child participation in the program?'), + # widget=forms.Select, required=False, + # choices=( + # ('', '----------'), + # ('less_than_10days', _('Less than 10 absence days')), + # ('10_15_days', _('10 to 15 absence days')), + # ('15_20_days', _('15 to 20 absence days')), + # ('more_than_20days', _('More than 20 absence days')) + # ), + # initial='' + # ) + + first_attendance_date = forms.DateField( + label=_("First attendance date"), + required=True + ) + + round = forms.ModelChoiceField( + # queryset=CLMRound.objects.filter(current_round_bln=True), widget=forms.Select, + queryset=CLMRound.objects.all(), widget=forms.Select, + label=_('Round'), + empty_label='-------', + required=True, to_field_name='id', + # initial=CLMRound.objects.filter(current_round_bln=True).first().id + ) student_birthday_year = forms.ChoiceField( label=_("Birthday year"), widget=forms.Select, required=True, @@ -392,20 +401,213 @@ class BLNForm(CommonForm): choices=YES_NO_CHOICE, coerce=lambda x: bool(int(x)), widget=forms.RadioSelect, + required=True, + ) + have_labour = forms.MultipleChoiceField( + label=_('Does the child participate in work?'), + choices=CLM.HAVE_LABOUR, + widget=forms.CheckboxSelectMultiple, + required=True, initial='no' + ) + labours = forms.MultipleChoiceField( + label=_('What is the type of work ?'), + choices=CLM.LABOURS, + widget=forms.CheckboxSelectMultiple, + required=False + ) + labour_hours = forms.CharField( + label=_('How many hours does this child work in a day?'), + widget=forms.TextInput, required=False + ) + # learning_result = forms.ChoiceField( + # label=_('Based on the overall score, what is the recommended learning path?'), + # widget=forms.Select, required=False, + # choices=( + # ('', '----------'), + # ('graduated_to_bln_next_round_same_level', _('Graduated to the next round, same level')), + # ('graduated_to_bln_next_round_higher_level', _('Graduated to the next round, higher level')), + # ('referred_to_alp', _('referred to ALP')), + # ('referred_public_school', _('Referred to public school')), + # ('referred_to_tvet', _('Referred to TVET')), + # ('referred_to_ybln', _('Referred to YBLN')), + # ('dropout', _('Dropout, referral not possible')), + # ), + # initial='' + # ) + + education_status = forms.ChoiceField( + label=_('Education status'), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('out of school', _('Out of school')), + ('enrolled in formal education but did not continue', _("Enrolled in formal education but did not continue")), + ('enrolled in BLN', _("Enrolled in BLN")), + ), + initial='' + ) + + other_nationality = forms.CharField( + label=_('Specify the nationality'), + widget=forms.TextInput, required=False + ) + + phone_number = forms.RegexField( + regex=r'^((03)|(70)|(71)|(76)|(78)|(79)|(81))-\d{6}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XX-XXXXXX'}), + required=True, + label=_('Phone number (own or closest relative)') + ) + phone_number_confirm = forms.RegexField( + regex=r'^((03)|(70)|(71)|(76)|(78)|(79)|(81))-\d{6}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XX-XXXXXX'}), + required=True, + label=_('Phone number confirm') + ) + + id_type = forms.ChoiceField( + label=_("ID type of the caretaker"), + widget=forms.Select(attrs=({'translation': _('Child no ID confirmation popup message')})), + required=True, + choices=( + ('', '----------'), + ('UNHCR Registered', _('UNHCR Registered')), + ('UNHCR Recorded', _("UNHCR Recorded")), + ('Syrian national ID', _("Syrian national ID")), + ('Palestinian national ID', _("Palestinian national ID")), + ('Lebanese national ID', _("Lebanese national ID")), + ('Child have no ID', _("Child have no ID")) + ), + initial='' + ) + case_number = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXCXXXXX'}), required=False, + label=_('UNHCR Case Number') ) - learning_result = forms.ChoiceField( - label=_('Based on the overall score, what is the recommended learning path?'), - widget=forms.Select, required=False, + case_number_confirm = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXCXXXXX'}), + required=False, + label=_('Confirm UNHCR Case Number') + ) + parent_individual_case_number = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + label=_( + 'Caretaker Individual ID from the certificate (Optional, in case not listed in the certificate)') + ) + parent_individual_case_number_confirm = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + label=_( + 'Confirm Caretaker Individual ID from the certificate (Optional, in case not listed in the certificate)') + ) + individual_case_number = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + label=_( + 'Individual ID of the Child from the certificate (Optional, in case not listed in the certificate)') + ) + individual_case_number_confirm = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + label=_( + 'Confirm Individual ID of the Child from the certificate (Optional, in case not listed in the certificate)') + ) + recorded_number = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: LEB-XXCXXXXX'}), + required=False, + label=_('UNHCR Barcode number (Shifra number)') + ) + recorded_number_confirm = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: LEB-XXCXXXXX'}), + required=False, + label=_('Confirm UNHCR Barcode number (Shifra number)') + ) + + national_number = forms.RegexField( + regex=r'^\d{12}$', + required=False, + label=_('Lebanese ID number of the child (Optional)') + ) + national_number_confirm = forms.RegexField( + regex=r'^\d{12}$', + required=False, + label=_('Confirm Lebanese ID number of the child (optional)') + ) + syrian_national_number = forms.RegexField( + regex=r'^\d{11}$', + required=False, + label=_('National ID number of the child (Optional)') + ) + syrian_national_number_confirm = forms.RegexField( + regex=r'^\d{11}$', + required=False, + label=_('Confirm National ID number of the child (Optional)') + ) + sop_national_number = forms.CharField( + required=False, + label=_('Palestinian ID number of the child (Optional)') + ) + sop_national_number_confirm = forms.CharField( + required=False, + label=_('Confirm Palestinian ID number of the child (optional)') + ) + parent_national_number = forms.RegexField( + regex=r'^\d{12}$', + required=False, + label=_('Lebanese ID number of the caretaker (Mandatory)') + ) + parent_national_number_confirm = forms.RegexField( + regex=r'^\d{12}$', + required=False, + label=_('Confirm Lebanese ID number of the caretaker (Mandatory)') + ) + parent_syrian_national_number = forms.RegexField( + regex=r'^\d{11}$', + required=False, + label=_('National ID number of the Caretaker (Mandatory)') + ) + parent_syrian_national_number_confirm = forms.RegexField( + regex=r'^\d{11}$', + required=False, + label=_('Confirm National ID number of the Caretaker (Mandatory)') + ) + parent_sop_national_number = forms.CharField( + # regex=r'^\d{11}$', + required=False, + label=_('Palestinian ID number of the Caretaker (Mandatory)') + ) + parent_sop_national_number_confirm = forms.CharField( + # regex=r'^\d{11}$', + required=False, + label=_('Confirm Palestinian ID number of the Caretaker (Mandatory)') + ) + + no_child_id_confirmation = forms.CharField(widget=forms.HiddenInput, required=False) + no_parent_id_confirmation = forms.CharField(widget=forms.HiddenInput, required=False) + + source_of_identification = forms.ChoiceField( + label=_("Source of identification of the child to BLN"), + widget=forms.Select, + required=True, choices=( ('', '----------'), - ('repeat_level', _('Repeat level')), - ('attended_public_school', _('Attended public school')), - ('referred_to_alp', _('referred to ALP')), - ('ready_to_alp_but_not_possible', _('Ready for ALP but referral is not possible')), - ('reenrolled_in_alp', _('Re-register on another round of BLN')), - ('not_enrolled_any_program', _('Not enrolled in any educational program')), - # ('dropout', _('Dropout from school')) + ('Referred by CP partner', _('Referred by CP partner')), + ('Referred by youth partner', _('Referred by youth partner')), + ('Family walked in to NGO', _('Family walked in to NGO')), + ('Referral from another NGO', _('Referral from another NGO')), + ('Referral from another Municipality', _('Referral from Municipality')), + ('Direct outreach', _('Direct outreach')), + ('List database', _('List database')) ), initial='' ) @@ -436,14 +638,14 @@ def __init__(self, *args, **kwargs): ) if instance.pre_test: pre_test_button = ' btn-success ' - post_test_button = ' btn-outline-success ' - post_test = instance.assessment_form( - stage='post_test', - assessment_slug='bln_post_test', - callback=self.request.build_absolute_uri(reverse('clm:bln_edit', kwargs={'pk': instance.id})) - ) - if instance.post_test: - post_test_button = ' btn-success ' + # post_test_button = ' btn-outline-success ' + # post_test = instance.assessment_form( + # stage='post_test', + # assessment_slug='bln_post_test', + # callback=self.request.build_absolute_uri(reverse('clm:bln_edit', kwargs={'pk': instance.id})) + # ) + # if instance.post_test: + # post_test_button = ' btn-success ' self.helper = FormHelper() self.helper.form_show_labels = True @@ -500,20 +702,27 @@ def __init__(self, *args, **kwargs): ), Div( HTML('1'), - Div('round', css_class='col-md-3'), + Div('first_attendance_date', css_class='col-md-3'), css_class='row', ), Div( HTML('2'), - Div('governorate', css_class='col-md-3'), + Div('round', css_class='col-md-3'), HTML('3'), - Div('district', css_class='col-md-3'), + Div('source_of_identification', css_class='col-md-3'), css_class='row', ), Div( HTML('4'), - Div('location', css_class='col-md-3'), + Div('governorate', css_class='col-md-3'), HTML('5'), + Div('district', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('6'), + Div('location', css_class='col-md-3'), + HTML('7'), Div('language', css_class='col-md-3'), css_class='row', ), @@ -545,6 +754,7 @@ def __init__(self, *args, **kwargs): Div('student_sex', css_class='col-md-3'), HTML('7'), Div('student_nationality', css_class='col-md-3'), + Div('other_nationality', css_class='col-md-3'), css_class='row', ), Div( @@ -563,14 +773,16 @@ def __init__(self, *args, **kwargs): Div('student_p_code', css_class='col-md-3'), HTML('12'), Div('disability', css_class='col-md-3'), + HTML('13'), + Div('education_status', css_class='col-md-3'), css_class='row', ), Div( - HTML('13'), - Div('student_id_number', css_class='col-md-3'), - HTML('14'), - Div('internal_number', css_class='col-md-3'), + HTML('14'), + Div('student_id_number', css_class='col-md-3 d-none'), HTML('15'), + Div('internal_number', css_class='col-md-3'), + HTML('16'), Div('comments', css_class='col-md-3'), css_class='row', ), @@ -579,75 +791,338 @@ def __init__(self, *args, **kwargs): Fieldset( None, Div( - HTML('

' + _('Family Status') + '

') + HTML('

' + _('Parent/Caregiver Information') + '

') ), Div( HTML('1'), Div('hh_educational_level', css_class='col-md-4'), HTML('2'), - Div('student_family_status', css_class='col-md-3'), - HTML('3'), - Div('student_have_children', css_class='col-md-3', css_id='student_have_children'), + Div('father_educational_level', css_class='col-md-4'), css_class='row', ), Div( + HTML('3'), + Div('phone_number', css_class='col-md-4'), HTML('4'), - Div('have_labour', css_class='col-md-4'), + Div('phone_number_confirm', css_class='col-md-4'), + css_class='row', + ), + Div( HTML('5'), - Div('labours', css_class='col-md-3', css_id='labours'), + Div('caretaker_first_name', css_class='col-md-4'), HTML('6'), - Div('labour_hours', css_class='col-md-3', css_id='labour_hours'), + Div('caretaker_middle_name', css_class='col-md-4'), css_class='row', ), - css_class='bd-callout bd-callout-warning child_data' - ), - Fieldset( - None, Div( - HTML('

' + _('Assessment data') + '

') + HTML('7'), + Div('caretaker_last_name', css_class='col-md-4'), + HTML('8'), + Div('caretaker_mother_name', css_class='col-md-4'), + css_class='row', ), Div( - HTML('
' + _('Pre-assessment') + '
'), - HTML( - '
' + _('Post-assessment') + '
'), + HTML('9'), + Div('id_type', css_class='col-md-4'), css_class='row', ), Div( - HTML('
'), - css_class='row' + HTML('10'), + Div('case_number', css_class='col-md-4'), + HTML('11'), + Div('case_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id1', ), - css_class='bd-callout bd-callout-warning' + display_assessment + Div( + HTML('12'), + Div('parent_individual_case_number', css_class='col-md-4'), + HTML('13'), + Div('parent_individual_case_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id1', + ), + Div( + HTML('14'), + Div('individual_case_number', css_class='col-md-4'), + HTML('15'), + Div('individual_case_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id1', + ), + Div( + HTML('10'), + Div('recorded_number', css_class='col-md-4'), + HTML('11'), + Div('recorded_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id2', + ), + Div( + HTML('10'), + Div('parent_national_number', css_class='col-md-4'), + HTML('11'), + Div('parent_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id3', + ), + Div( + HTML('12'), + Div('national_number', css_class='col-md-4'), + HTML('13'), + Div('national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id3', + ), + Div( + HTML('10'), + Div('parent_syrian_national_number', css_class='col-md-4'), + HTML('11'), + Div('parent_syrian_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id4', + ), + Div( + HTML('12'), + Div('syrian_national_number', css_class='col-md-4'), + HTML('13'), + Div('syrian_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id4', + ), + Div( + HTML('10'), + Div('parent_sop_national_number', css_class='col-md-4'), + HTML('11'), + Div('parent_sop_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id5', + ), + Div( + HTML('12'), + Div('sop_national_number', css_class='col-md-4'), + HTML('13'), + Div('sop_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id5', + ), + css_class='bd-callout bd-callout-warning child_data' ), Fieldset( None, Div( - HTML('

' + _('School evaluation') + '

') + HTML('

' + _('Family Status') + '

') ), Div( HTML('1'), - Div('unsuccessful_posttest_reason', css_class='col-md-3'), + Div('student_family_status', css_class='col-md-3'), + HTML('2'), + Div('student_have_children', css_class='col-md-3', css_id='student_have_children'), css_class='row', ), Div( - HTML('2'), - Div('participation', css_class='col-md-3'), HTML('3'), - Div('barriers', css_class='col-md-3'), + Div('have_labour', css_class='col-md-4'), HTML('4'), - Div('learning_result', css_class='col-md-3'), + Div('labours', css_class='col-md-3', css_id='labours'), + HTML('5'), + Div('labour_hours', css_class='col-md-3', css_id='labour_hours'), css_class='row', ), - css_class='bd-callout bd-callout-warning'+display_assessment + css_class='bd-callout bd-callout-warning child_data' + ), + Fieldset( + None, + Div( + HTML('

' + _('Assessment data') + '

') + ), + Div( + HTML('1'), + HTML('
' + _('Pre-assessment') + '
'), + HTML('2'), + Div('unsuccessful_pretest_reason', css_class='col-md-3'), + # HTML( + # '
' + _('Post-assessment') + '
'), + css_class='row', + ), + Div( + HTML('
'), + css_class='row' + ), + css_class='bd-callout bd-callout-warning' + display_assessment ), + # Fieldset( + # None, + # Div( + # HTML('

' + _('School evaluation') + '

') + # ), + # Div( + # HTML('1'), + # Div('unsuccessful_pretest_reason', css_class='col-md-3'), + # HTML('2'), + # Div('unsuccessful_posttest_reason', css_class='col-md-3'), + # css_class='row', + # ), + # Div( + # HTML('3'), + # Div('participation', css_class='col-md-3'), + # HTML('4'), + # Div('barriers', css_class='col-md-3'), + # HTML('5'), + # Div('learning_result', css_class='col-md-3'), + # css_class='row', + # ), + # css_class='bd-callout bd-callout-warning'+display_assessment + # ), FormActions( - Submit('save', _('Save')), - Submit('save_add_another', _('Save and add another'), css_class='child_data'), + Submit('save', _('Save'), css_class='col-md-2'), + Submit('save_add_another', _('Save and add another'), css_class='col-md-2 child_data'), + Submit('save_and_continue', _('Save and continue'), css_class='col-md-2 child_data'), + Submit('save_and_pretest', _('Save and Fill pre-test'), css_class='col-md-2 child_data'), HTML('' + _('Back to list') + ''), ) ) + def clean(self): + cleaned_data = super(BLNForm, self).clean() + + phone_number = cleaned_data.get("phone_number") + phone_number_confirm = cleaned_data.get("phone_number_confirm") + id_type = cleaned_data.get("id_type") + case_number = cleaned_data.get("case_number") + case_number_confirm = cleaned_data.get("case_number_confirm") + individual_case_number = cleaned_data.get("individual_case_number") + individual_case_number_confirm = cleaned_data.get("individual_case_number_confirm") + recorded_number = cleaned_data.get("recorded_number") + recorded_number_confirm = cleaned_data.get("recorded_number_confirm") + national_number = cleaned_data.get("national_number") + national_number_confirm = cleaned_data.get("national_number_confirm") + syrian_national_number = cleaned_data.get("syrian_national_number") + syrian_national_number_confirm = cleaned_data.get("syrian_national_number_confirm") + sop_national_number = cleaned_data.get("sop_national_number") + sop_national_number_confirm = cleaned_data.get("sop_national_number_confirm") + + parent_individual_case_number = cleaned_data.get("parent_individual_case_number") + parent_individual_case_number_confirm = cleaned_data.get("parent_individual_case_number_confirm") + parent_national_number = cleaned_data.get("parent_national_number") + parent_national_number_confirm = cleaned_data.get("parent_national_number_confirm") + sop_parent_national_number = cleaned_data.get("parent_sop_national_number") + sop_parent_national_number_confirm = cleaned_data.get("parent_sop_national_number_confirm") + parent_syrian_national_number = cleaned_data.get("parent_syrian_national_number") + parent_syrian_national_number_confirm = cleaned_data.get("parent_syrian_national_number_confirm") + + if phone_number != phone_number_confirm: + msg = "The phone numbers are not matched" + self.add_error('phone_number_confirm', msg) + + if id_type == 'UNHCR Registered': + if not case_number: + self.add_error('case_number', 'This field is required') + + if case_number != case_number_confirm: + msg = "The case numbers are not matched" + self.add_error('case_number_confirm', msg) + + if parent_individual_case_number != parent_individual_case_number_confirm: + msg = "The individual case numbers are not matched" + self.add_error('parent_individual_case_number_confirm', msg) + + if individual_case_number != individual_case_number_confirm: + msg = "The individual case numbers are not matched" + self.add_error('individual_case_number_confirm', msg) + + if id_type == 'UNHCR Recorded': + if not recorded_number: + self.add_error('recorded_number', 'This field is required') + + if recorded_number != recorded_number_confirm: + msg = "The recorded numbers are not matched" + self.add_error('recorded_number_confirm', msg) + + if id_type == 'Syrian national ID': + + if not parent_syrian_national_number: + self.add_error('parent_syrian_national_number', 'This field is required') + + if not parent_syrian_national_number_confirm: + self.add_error('parent_syrian_national_number_confirm', 'This field is required') + + if parent_syrian_national_number_confirm and not len(parent_syrian_national_number_confirm) == 11: + msg = "Please enter a valid number (11 digits)" + self.add_error('parent_syrian_national_number_confirm', msg) + + if parent_syrian_national_number and not len(parent_syrian_national_number) == 11: + msg = "Please enter a valid number (11 digits)" + self.add_error('parent_syrian_national_number', msg) + + if parent_syrian_national_number != parent_syrian_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('parent_syrian_national_number_confirm', msg) + + if syrian_national_number != syrian_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('syrian_national_number_confirm', msg) + + if id_type == 'Lebanese national ID': + if not parent_national_number: + self.add_error('parent_national_number', 'This field is required') + + if not parent_national_number_confirm: + self.add_error('parent_national_number_confirm', 'This field is required') + + if parent_national_number and not len(parent_national_number) == 12: + msg = "Please enter a valid number (12 digits)" + self.add_error('parent_national_number', msg) + + if parent_national_number_confirm and not len(parent_national_number_confirm) == 12: + msg = "Please enter a valid number (12 digits)" + self.add_error('parent_national_number_confirm', msg) + + if parent_national_number != parent_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('parent_national_number_confirm', msg) + + if national_number != national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('national_number_confirm', msg) + + if id_type == 'Palestinian national ID': + if not sop_parent_national_number: + self.add_error('parent_sop_national_number', 'This field is required') + + if not sop_parent_national_number_confirm: + self.add_error('parent_sop_national_number_confirm', 'This field is required') + + if sop_parent_national_number != sop_parent_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('parent_sop_national_number_confirm', msg) + + if sop_national_number != sop_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('sop_national_number_confirm', msg) + def save(self, request=None, instance=None, serializer=None): super(BLNForm, self).save(request=request, instance=instance, serializer=BLNSerializer) @@ -656,14 +1131,49 @@ class Meta: fields = CommonForm.Meta.fields + ( # 'cycle', # 'referral', + 'first_attendance_date', 'student_birthday_year', 'student_family_status', 'student_have_children', + 'have_labour', + 'labours', + 'labour_hours', + 'phone_number', + 'phone_number_confirm', + 'id_type', + 'case_number', + 'case_number_confirm', + 'individual_case_number', + 'individual_case_number_confirm', + 'parent_individual_case_number', + 'parent_individual_case_number_confirm', + 'recorded_number', + 'recorded_number_confirm', + 'national_number', + 'national_number_confirm', + 'syrian_national_number', + 'syrian_national_number_confirm', + 'sop_national_number', + 'sop_national_number_confirm', + 'parent_national_number', + 'parent_national_number_confirm', + 'parent_syrian_national_number', + 'parent_syrian_national_number_confirm', + 'parent_sop_national_number', + 'parent_sop_national_number_confirm', + 'no_child_id_confirmation', + 'source_of_identification', + 'other_nationality', + 'education_status', + 'caretaker_first_name', + 'caretaker_middle_name', + 'caretaker_last_name', + 'caretaker_mother_name', ) class Media: js = ( - # 'js/jquery-1.12.3.min.js', + # 'js/jquery-3.3.1.min.js', # 'js/jquery-ui-1.12.1.js', # 'js/validator.js', # 'js/registrations.js', @@ -693,7 +1203,22 @@ class RSForm(CommonForm): choices=(('no', _("No")), ), initial='no' ) - + have_labour = forms.MultipleChoiceField( + label=_('Does the child participate in work?'), + choices=CLM.HAVE_LABOUR, + widget=forms.CheckboxSelectMultiple, + required=False, initial='no' + ) + labours = forms.MultipleChoiceField( + label=_('What is the type of work ?'), + choices=CLM.LABOURS, + widget=forms.CheckboxSelectMultiple, + required=False + ) + labour_hours = forms.CharField( + label=_('How many hours does this child work in a day?'), + widget=forms.TextInput, required=False + ) type = forms.ChoiceField( widget=forms.Select, required=True, label=_('Select the program type'), @@ -798,7 +1323,7 @@ class RSForm(CommonForm): ('', '----------'), ('repeat_level', _('Repeat level')), # ('dropout', _('Dropout from school')), - ('graduated_next_level', _('Graduated to the next level')), + ('graduated_next_level', _('Referred to the next level')), ), initial='' ) @@ -1048,17 +1573,22 @@ def __init__(self, *args, **kwargs): HTML('1'), Div('hh_educational_level', css_class='col-md-4'), HTML('2'), - Div('student_family_status', css_class='col-md-3'), + Div('father_educational_level', css_class='col-md-4'), + css_class='row', + ), + Div( HTML('3'), + Div('student_family_status', css_class='col-md-3'), + HTML('4'), Div('student_have_children', css_class='col-md-3', css_id='student_have_children'), css_class='row', ), Div( - HTML('4'), - Div('have_labour', css_class='col-md-4'), HTML('5'), - Div('labours', css_class='col-md-3', css_id='labours'), + Div('have_labour', css_class='col-md-4'), HTML('6'), + Div('labours', css_class='col-md-3', css_id='labours'), + HTML('7'), Div('labour_hours', css_class='col-md-3', css_id='labour_hours'), css_class='row', ), @@ -1215,23 +1745,27 @@ def __init__(self, *args, **kwargs): ), Div( HTML('1'), + Div('unsuccessful_pretest_reason', css_class='col-md-3'), + HTML('2'), Div('unsuccessful_posttest_reason', css_class='col-md-3'), css_class='row', ), Div( - HTML('2'), - Div('participation', css_class='col-md-3'), HTML('3'), - Div('barriers', css_class='col-md-3'), + Div('participation', css_class='col-md-3'), HTML('4'), + Div('barriers', css_class='col-md-3'), + HTML('5'), Div('learning_result', css_class='col-md-3'), css_class='row', ), css_class='bd-callout bd-callout-warning'+display_assessment ), FormActions( - Submit('save', _('Save')), - Submit('save_add_another', _('Save and add another'), css_class='child_data'), + Submit('save', _('Save'), css_class='col-md-2'), + Submit('save_add_another', _('Save and add another'), css_class='col-md-2 child_data'), + Submit('save_and_continue', _('Save and continue'), css_class='col-md-2 child_data'), + Submit('save_and_pretest', _('Save and Fill pre-test'), css_class='col-md-2 child_data'), HTML('' + _('Back to list') + ''), ) ) @@ -1250,6 +1784,9 @@ class Meta: 'grade', 'section', 'referral', + 'have_labour', + 'labours', + 'labour_hours', 'registered_in_school', 'student_family_status', 'student_have_children', @@ -1278,7 +1815,7 @@ class CBECEForm(CommonForm): cycle = forms.ModelChoiceField( queryset=Cycle.objects.all(), widget=forms.Select, label=_('In which cycle is this child registered?'), - required=False, to_field_name='id', + required=True, to_field_name='id', initial=0 ) site = forms.ChoiceField( @@ -1317,6 +1854,30 @@ class CBECEForm(CommonForm): widget=forms.NumberInput, min_value=0, max_value=80 ) + # learning_result = forms.ChoiceField( + # label=_('Based on the overall score, what is the recommended learning path?'), + # widget=forms.Select, required=False, + # choices=( + # ('', '----------'), + # ('repeat_level', _('Repeat level')), + # ('graduated_next_level', _('Referred to the next level')), + # ('graduated_to_formal_education_level1', _('Referred to formal education - Level 1')), + # ('referred_to_another_program', _('Referred to another program')), + # ), + # initial='' + # ) + round = forms.ModelChoiceField( + queryset=CLMRound.objects.all(), widget=forms.Select, + label=_('Round'), + empty_label='-------', + required=True, to_field_name='id', + # initial=CLMRound.objects.filter(current_round_cbece=True).first().id + ) + + first_attendance_date = forms.DateField( + label=_("First attendance date"), + required=True + ) def __init__(self, *args, **kwargs): self.request = kwargs.pop('request', None) @@ -1346,14 +1907,14 @@ def __init__(self, *args, **kwargs): if instance.pre_test: pre_test_button = ' btn-success ' - post_test_button = ' btn-outline-success ' - post_test = instance.assessment_form( - stage='post_test', - assessment_slug='cbece_post_test', - callback=self.request.build_absolute_uri(reverse('clm:cbece_edit', kwargs={'pk': instance.id})) - ) - if instance.post_test: - post_test_button = ' btn-success ' + # post_test_button = ' btn-outline-success ' + # post_test = instance.assessment_form( + # stage='post_test', + # assessment_slug='cbece_post_test', + # callback=self.request.build_absolute_uri(reverse('clm:cbece_edit', kwargs={'pk': instance.id})) + # ) + # if instance.post_test: + # post_test_button = ' btn-success ' if instance.cycle_id == 3: display_final_grade = '' @@ -1414,28 +1975,30 @@ def __init__(self, *args, **kwargs): Div( HTML('1'), Div('round', css_class='col-md-3'), + HTML('2'), + Div('first_attendance_date', css_class='col-md-3'), css_class='row', ), Div( - HTML('2'), - Div('cycle', css_class='col-md-3'), HTML('3'), - Div('site', css_class='col-md-3'), + Div('cycle', css_class='col-md-3'), HTML('4'), + Div('site', css_class='col-md-3'), + HTML('5'), Div('school', css_class='col-md-4'), css_class='row', ), Div( - HTML('5'), - Div('governorate', css_class='col-md-3'), HTML('6'), - Div('district', css_class='col-md-3'), + Div('governorate', css_class='col-md-3'), HTML('7'), + Div('district', css_class='col-md-3'), + HTML('8'), Div('location', css_class='col-md-3'), css_class='row', ), Div( - HTML('8'), + HTML('9'), Div('language', css_class='col-md-3'), css_class='row', ), @@ -1511,17 +2074,19 @@ def __init__(self, *args, **kwargs): Div( HTML('1'), Div('hh_educational_level', css_class='col-md-3'), - css_class='row', - ), - Div( HTML('2'), - Div('have_labour', css_class='col-md-3'), - HTML('3'), - Div('labours', css_class='col-md-3', css_id='labours'), - HTML('4'), - Div('labour_hours', css_class='col-md-3', css_id='labour_hours'), + Div('father_educational_level', css_class='col-md-3'), css_class='row', ), + # Div( + # HTML('2'), + # Div('have_labour', css_class='col-md-3'), + # HTML('3'), + # Div('labours', css_class='col-md-3', css_id='labours'), + # HTML('4'), + # Div('labour_hours', css_class='col-md-3', css_id='labour_hours'), + # css_class='row', + # ), css_class='bd-callout bd-callout-warning child_data' ), Fieldset( @@ -1530,11 +2095,14 @@ def __init__(self, *args, **kwargs): HTML('

' + _('Assessment') + '

') ), Div( + HTML('1'), HTML('
' + _('Pre-assessment') + '
'), - HTML('
' + _('Post-assessment') + '
'), - css_class='row', + HTML('2'), + Div('unsuccessful_pretest_reason', css_class='col-md-3'), + # HTML('
' + _('Post-assessment') + '
'), + # css_class='row', ), Div( HTML('
'), @@ -1542,32 +2110,36 @@ def __init__(self, *args, **kwargs): ), css_class='bd-callout bd-callout-warning'+display_assessment ), - Fieldset( - None, - Div( - HTML('

' + _('School evaluation') + '

') - ), - Div( - HTML('1'), - Div('unsuccessful_posttest_reason', css_class='col-md-3'), - HTML('2'), - Div('final_grade', css_class='col-md-3'+display_final_grade), - css_class='row', - ), - Div( - HTML('3'), - Div('participation', css_class='col-md-3'), - HTML('4'), - Div('barriers', css_class='col-md-3'), - HTML('5'), - Div('learning_result', css_class='col-md-3'), - css_class='row', - ), - css_class='bd-callout bd-callout-warning'+display_assessment - ), + # Fieldset( + # None, + # Div( + # HTML('

' + _('School evaluation') + '

') + # ), + # Div( + # HTML('1'), + # Div('unsuccessful_pretest_reason', css_class='col-md-3'), + # HTML('2'), + # Div('unsuccessful_posttest_reason', css_class='col-md-3'), + # HTML('3'), + # Div('final_grade', css_class='col-md-3'+display_final_grade), + # css_class='row', + # ), + # Div( + # HTML('4'), + # Div('participation', css_class='col-md-3'), + # HTML('5'), + # Div('barriers', css_class='col-md-3'), + # HTML('6'), + # Div('learning_result', css_class='col-md-3'), + # css_class='row', + # ), + # css_class='bd-callout bd-callout-warning'+display_assessment + # ), FormActions( - Submit('save', _('Save')), - Submit('save_add_another', _('Save and add another'), css_class='child_data'), + Submit('save', _('Save'), css_class='col-md-2'), + Submit('save_add_another', _('Save and add another'), css_class='col-md-2 child_data'), + Submit('save_and_continue', _('Save and continue'), css_class='col-md-2 child_data'), + Submit('save_and_pretest', _('Save and Fill pre-test'), css_class='col-md-2 child_data'), HTML('' + _('Back to list') + ''), ) ) @@ -1584,50 +2156,1970 @@ class Meta: 'school', 'referral', 'child_muac', - 'final_grade', + # 'final_grade', ) -class BLNAdminForm(forms.ModelForm): - - student = forms.ModelChoiceField( - queryset=Student.objects.all(), - widget=autocomplete.ModelSelect2(url='student_autocomplete') - ) - - def __init__(self, *args, **kwargs): - super(BLNAdminForm, self).__init__(*args, **kwargs) - - class Meta: - model = BLN - fields = '__all__' - +class ABLNForm(CommonForm): -class RSAdminForm(forms.ModelForm): + YEARS_BLN = list(((str(x), x) for x in range(Person.CURRENT_YEAR - 16, Person.CURRENT_YEAR))) + YEARS_BLN.insert(0, ('', '---------')) - student = forms.ModelChoiceField( - queryset=Student.objects.all(), - widget=autocomplete.ModelSelect2(url='student_autocomplete') + # participation = forms.ChoiceField( + # label=_('How was the level of child participation in the program?'), + # widget=forms.Select, required=False, + # choices=( + # ('', '----------'), + # ('less_than_3days', _('Less than 3 absence days')), + # ('3_7_days', _('3 to 7 absence days')), + # ('7_12_days', _('7 to 12 absence days')), + # ('more_than_12days', _('More than 12 absence days')) + # ), + # initial='' + # ) + first_attendance_date = forms.DateField( + label=_("First attendance date"), + required=True ) - def __init__(self, *args, **kwargs): - super(RSAdminForm, self).__init__(*args, **kwargs) - - class Meta: - model = RS - fields = '__all__' + round = forms.ModelChoiceField( + queryset=CLMRound.objects.filter(current_round_abln=True), widget=forms.Select, + label=_('Round'), + empty_label='-------', + required=True, to_field_name='id', + # initial=8 + ) + student_birthday_year = forms.ChoiceField( + label=_("Birthday year"), + widget=forms.Select, required=True, + choices=YEARS_BLN + ) + student_family_status = forms.ChoiceField( + label=_('What is the family status of the child?'), + widget=forms.Select, required=True, + choices=Student.FAMILY_STATUS, + initial='single' + ) + student_have_children = forms.TypedChoiceField( + label=_("Does the child have children?"), + choices=YES_NO_CHOICE, + coerce=lambda x: bool(int(x)), + widget=forms.RadioSelect, + required=True, + ) + have_labour = forms.MultipleChoiceField( + label=_('Does the child participate in work?'), + choices=CLM.HAVE_LABOUR, + widget=forms.CheckboxSelectMultiple, + required=True, initial='no' + ) + labours = forms.MultipleChoiceField( + label=_('What is the type of work ?'), + choices=CLM.LABOURS, + widget=forms.CheckboxSelectMultiple, + required=False + ) + labour_hours = forms.CharField( + label=_('How many hours does this child work in a day?'), + widget=forms.TextInput, required=False + ) + # learning_result = forms.ChoiceField( + # label=_('Based on the overall score, what is the recommended learning path?'), + # widget=forms.Select, required=False, + # choices=( + # ('', '----------'), + # ('graduated_to_abln_next_round_same_level', _('Graduated to the next round, same level')), + # ('graduated_to_abln_next_round_higher_level', _('Graduated to the next round, higher level')), + # ('referred_to_bln', _('Referred to BLN')), + # ('referred_to_ybln', _('Referred to YBLN')), + # ('referred_to_alp', _('Referred to ALP')), + # ('referred_to_cbt', _('Referred to CBT')), + # ('dropout', _('Dropout, referral not possible')), + # ), + # initial='' + # ) -class CBECEAdminForm(forms.ModelForm): + education_status = forms.ChoiceField( + label=_('Education status'), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('out of school', _('Out of school')), + ('enrolled in formal education but did not continue', _("Enrolled in formal education but did not continue")), + ('enrolled in ABLN', _("Enrolled in ABLN")), + ), + initial='' + ) - student = forms.ModelChoiceField( - queryset=Student.objects.all(), - widget=autocomplete.ModelSelect2(url='student_autocomplete') + other_nationality = forms.CharField( + label=_('Specify the nationality'), + widget=forms.TextInput, required=False ) - def __init__(self, *args, **kwargs): - super(CBECEAdminForm, self).__init__(*args, **kwargs) + phone_number = forms.RegexField( + regex=r'^((03)|(70)|(71)|(76)|(78)|(79)|(81))-\d{6}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XX-XXXXXX'}), + required=True, + label=_('Phone number (own or closest relative)') + ) + phone_number_confirm = forms.RegexField( + regex=r'^((03)|(70)|(71)|(76)|(78)|(79)|(81))-\d{6}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XX-XXXXXX'}), + required=True, + label=_('Phone number confirm') + ) + + id_type = forms.ChoiceField( + label=_("ID type of the caretaker"), + widget=forms.Select(attrs=({'translation': _('Child no ID confirmation popup message')})), + required=True, + choices=( + ('', '----------'), + ('UNHCR Registered', _('UNHCR Registered')), + ('UNHCR Recorded', _("UNHCR Recorded")), + ('Syrian national ID', _("Syrian national ID")), + ('Palestinian national ID', _("Palestinian national ID")), + ('Lebanese national ID', _("Lebanese national ID")), + ('Child have no ID', _("Child have no ID")) + ), + initial='' + ) + case_number = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXCXXXXX'}), + required=False, + label=_('UNHCR Case Number') + ) + case_number_confirm = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXCXXXXX'}), + required=False, + label=_('Confirm UNHCR Case Number') + ) + parent_individual_case_number = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + label=_( + 'Caretaker Individual ID from the certificate (Optional, in case not listed in the certificate)') + ) + parent_individual_case_number_confirm = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + label=_( + 'Confirm Caretaker Individual ID from the certificate (Optional, in case not listed in the certificate)') + ) + individual_case_number = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + label=_( + 'Individual ID of the Child from the certificate (Optional, in case not listed in the certificate)') + ) + individual_case_number_confirm = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + label=_( + 'Confirm Individual ID of the Child from the certificate (Optional, in case not listed in the certificate)') + ) + recorded_number = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: LEB-XXCXXXXX'}), + required=False, + label=_('UNHCR Barcode number (Shifra number)') + ) + recorded_number_confirm = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: LEB-XXCXXXXX'}), + required=False, + label=_('Confirm UNHCR Barcode number (Shifra number)') + ) + + national_number = forms.RegexField( + regex=r'^\d{12}$', + required=False, + label=_('Lebanese ID number of the child (Optional)') + ) + national_number_confirm = forms.RegexField( + regex=r'^\d{12}$', + required=False, + label=_('Confirm Lebanese ID number of the child (optional)') + ) + syrian_national_number = forms.RegexField( + regex=r'^\d{11}$', + required=False, + label=_('National ID number of the child (Optional)') + ) + syrian_national_number_confirm = forms.RegexField( + regex=r'^\d{11}$', + required=False, + label=_('Confirm National ID number of the child (Optional)') + ) + sop_national_number = forms.CharField( + required=False, + label=_('Palestinian ID number of the child (Optional)') + ) + sop_national_number_confirm = forms.CharField( + required=False, + label=_('Confirm Palestinian ID number of the child (optional)') + ) + parent_national_number = forms.RegexField( + regex=r'^\d{12}$', + required=False, + label=_('Lebanese ID number of the caretaker (Mandatory)') + ) + parent_national_number_confirm = forms.RegexField( + regex=r'^\d{12}$', + required=False, + label=_('Confirm Lebanese ID number of the caretaker (Mandatory)') + ) + parent_syrian_national_number = forms.RegexField( + regex=r'^\d{11}$', + required=False, + label=_('National ID number of the Caretaker (Mandatory)') + ) + parent_syrian_national_number_confirm = forms.RegexField( + regex=r'^\d{11}$', + required=False, + label=_('Confirm National ID number of the Caretaker (Mandatory)') + ) + parent_sop_national_number = forms.CharField( + # regex=r'^\d{11}$', + required=False, + label=_('Palestinian ID number of the Caretaker (Mandatory)') + ) + parent_sop_national_number_confirm = forms.CharField( + # regex=r'^\d{11}$', + required=False, + label=_('Confirm Palestinian ID number of the Caretaker (Mandatory)') + ) + + no_child_id_confirmation = forms.CharField(widget=forms.HiddenInput, required=False) + no_parent_id_confirmation = forms.CharField(widget=forms.HiddenInput, required=False) + + source_of_identification = forms.ChoiceField( + label=_("Source of identification of the child"), + widget=forms.Select, + required=True, + choices=( + ('', '----------'), + ('Referred by CP partner', _('Referred by CP partner')), + ('Referred by youth partner', _('Referred by youth partner')), + ('Family walked in to NGO', _('Family walked in to NGO')), + ('Referral from another NGO', _('Referral from another NGO')), + ('Referral from another Municipality', _('Referral from Municipality')), + ('Direct outreach', _('Direct outreach')), + ('List database', _('List database')) + ), + initial='' + ) + + def __init__(self, *args, **kwargs): + self.request = kwargs.pop('request', None) + super(ABLNForm, self).__init__(*args, **kwargs) + + pre_test = '' + # post_test = '' + pre_test_button = ' btn-outline-success ' + # post_test_button = ' btn-outline-secondary disabled' + display_assessment = ' d-none' + display_registry = '' + instance = kwargs['instance'] if 'instance' in kwargs else '' + form_action = reverse('clm:abln_add') + self.fields['clm_type'].initial = 'ABLN' + + if instance: + display_assessment = '' + display_registry = ' d-none' + form_action = reverse('clm:abln_edit', kwargs={'pk': instance.id}) + + pre_test = instance.assessment_form( + stage='pre_test', + assessment_slug='abln_pre_test', + callback=self.request.build_absolute_uri(reverse('clm:abln_edit', kwargs={'pk': instance.id})) + ) + if instance.pre_test: + pre_test_button = ' btn-success ' + # post_test_button = ' btn-outline-success ' + # post_test = instance.assessment_form( + # stage='post_test', + # assessment_slug='abln_post_test', + # callback=self.request.build_absolute_uri(reverse('clm:abln_edit', kwargs={'pk': instance.id})) + # ) + # if instance.post_test: + # post_test_button = ' btn-success ' + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = form_action + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('

' + _('Registry') + '

') + ), + Div( + 'clm_type', + 'student_id', + 'enrollment_id', + 'student_outreach_child', + HTML('1'), + Div('new_registry', css_class='col-md-3'), + HTML('2'), + Div('student_outreached', css_class='col-md-3'), + HTML('3'), + Div('have_barcode', css_class='col-md-3', css_id='have_barcode_option'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning'+display_registry, css_id='registry_block' + ), + Fieldset( + None, + Div( + HTML('

'+_('Register by Barcode')+'

') + ), + Div( + Div('search_barcode', css_class='col-md-4'), + css_class='row', + ), + css_id='register_by_barcode', css_class='bd-callout bd-callout-warning'+display_registry + ), + Fieldset( + None, + Div( + HTML('

' + _( + 'Search CLM student') + '

') + ), + Div( + HTML('1'), + Div('search_clm_student', css_class='col-md-3'), + css_class='row', + ), + css_id='search_options', css_class='bd-callout bd-callout-warning' + display_registry + ), + Fieldset( + None, + Div( + HTML('

' + _('Program Information') + '

') + ), + Div( + HTML('1'), + Div('first_attendance_date', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('round', css_class='col-md-3'), + HTML('3'), + Div('source_of_identification', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('4'), + Div('governorate', css_class='col-md-3'), + HTML('5'), + Div('district', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('6'), + Div('location', css_class='col-md-3'), + HTML('7'), + Div('language', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning child_data' + ), + Fieldset( + None, + Div( + HTML('

' + _('Child Information') + '

') + ), + # Div( + # HTML('1'), + # Div('referral', css_class='col-md-9'), + # css_class='row', + # ), + Div( + HTML('2'), + Div('student_first_name', css_class='col-md-3'), + HTML('3'), + Div('student_father_name', css_class='col-md-3'), + HTML('4'), + Div('student_mother_fullname', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('5'), + Div('student_last_name', css_class='col-md-3'), + HTML('6'), + Div('student_sex', css_class='col-md-3'), + HTML('7'), + Div('student_nationality', css_class='col-md-3'), + Div('other_nationality', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('8'), + Div('student_birthday_year', css_class='col-md-3'), + HTML('9'), + Div('student_birthday_month', css_class='col-md-3'), + HTML('10'), + Div('student_birthday_day', css_class='col-md-3'), + css_class='row', + ), + Div( + # HTML('11'), + # Div('student_address', css_class='col-md-3'), + HTML('11'), + Div('student_p_code', css_class='col-md-3'), + HTML('12'), + Div('disability', css_class='col-md-3'), + HTML('13'), + Div('education_status', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('14'), + Div('student_id_number', css_class='col-md-3 d-none'), + HTML('15'), + Div('internal_number', css_class='col-md-3'), + HTML('16'), + Div('comments', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning child_data' + ), + Fieldset( + None, + Div( + HTML('

' + _('Parent/Caregiver Information') + '

') + ), + Div( + HTML('1'), + Div('hh_educational_level', css_class='col-md-4'), + HTML('2'), + Div('father_educational_level', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('3'), + Div('phone_number', css_class='col-md-4'), + HTML('4'), + Div('phone_number_confirm', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('5'), + Div('caretaker_first_name', css_class='col-md-4'), + HTML('6'), + Div('caretaker_middle_name', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('7'), + Div('caretaker_last_name', css_class='col-md-4'), + HTML('8'), + Div('caretaker_mother_name', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('9'), + Div('id_type', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('10'), + Div('case_number', css_class='col-md-4'), + HTML('11'), + Div('case_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id1', + ), + Div( + HTML('12'), + Div('parent_individual_case_number', css_class='col-md-4'), + HTML('13'), + Div('parent_individual_case_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id1', + ), + Div( + HTML('14'), + Div('individual_case_number', css_class='col-md-4'), + HTML('15'), + Div('individual_case_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id1', + ), + Div( + HTML('10'), + Div('recorded_number', css_class='col-md-4'), + HTML('11'), + Div('recorded_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id2', + ), + Div( + HTML('10'), + Div('parent_national_number', css_class='col-md-4'), + HTML('11'), + Div('parent_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id3', + ), + Div( + HTML('12'), + Div('national_number', css_class='col-md-4'), + HTML('13'), + Div('national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id3', + ), + Div( + HTML('10'), + Div('parent_syrian_national_number', css_class='col-md-4'), + HTML('11'), + Div('parent_syrian_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id4', + ), + Div( + HTML('12'), + Div('syrian_national_number', css_class='col-md-4'), + HTML('13'), + Div('syrian_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id4', + ), + Div( + HTML('10'), + Div('parent_sop_national_number', css_class='col-md-4'), + HTML('11'), + Div('parent_sop_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id5', + ), + Div( + HTML('12'), + Div('sop_national_number', css_class='col-md-4'), + HTML('13'), + Div('sop_national_number_confirm', css_class='col-md-4'), + HTML('' + + '' + + ''), + css_class='row child_id child_id5', + ), + css_class='bd-callout bd-callout-warning child_data' + ), + Fieldset( + None, + Div( + HTML('

' + _('Family Status') + '

') + ), + Div( + HTML('1'), + Div('student_family_status', css_class='col-md-3'), + HTML('2'), + Div('student_have_children', css_class='col-md-3', css_id='student_have_children'), + css_class='row', + ), + Div( + HTML('3'), + Div('have_labour', css_class='col-md-4'), + HTML('4'), + Div('labours', css_class='col-md-3', css_id='labours'), + HTML('5'), + Div('labour_hours', css_class='col-md-3', css_id='labour_hours'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning child_data' + ), + Fieldset( + None, + Div( + HTML('

' + _('Assessment data') + '

') + ), + Div( + HTML('1'), + HTML('
' + _('Pre-assessment') + '
'), + HTML('2'), + Div('unsuccessful_pretest_reason', css_class='col-md-3'), + # HTML( + # '
' + _('Post-assessment') + '
'), + css_class='row', + ), + Div( + HTML('
'), + css_class='row' + ), + css_class='bd-callout bd-callout-warning' + display_assessment + ), + # Fieldset( + # None, + # Div( + # HTML('

' + _('School evaluation') + '

') + # ), + # Div( + # HTML('1'), + # Div('unsuccessful_pretest_reason', css_class='col-md-3'), + # HTML('2'), + # Div('unsuccessful_posttest_reason', css_class='col-md-3'), + # css_class='row', + # ), + # Div( + # HTML('3'), + # Div('participation', css_class='col-md-3'), + # HTML('4'), + # Div('barriers', css_class='col-md-3'), + # HTML('5'), + # Div('learning_result', css_class='col-md-3'), + # css_class='row', + # ), + # css_class='bd-callout bd-callout-warning'+display_assessment + # ), + FormActions( + Submit('save', _('Save'), css_class='col-md-2'), + Submit('save_add_another', _('Save and add another'), css_class='col-md-2 child_data'), + Submit('save_and_continue', _('Save and continue'), css_class='col-md-2 child_data'), + Submit('save_and_pretest', _('Save and Fill pre-test'), css_class='col-md-2 child_data'), + HTML('' + _('Back to list') + ''), + ) + ) + + def clean(self): + cleaned_data = super(ABLNForm, self).clean() + + phone_number = cleaned_data.get("phone_number") + phone_number_confirm = cleaned_data.get("phone_number_confirm") + id_type = cleaned_data.get("id_type") + case_number = cleaned_data.get("case_number") + case_number_confirm = cleaned_data.get("case_number_confirm") + individual_case_number = cleaned_data.get("individual_case_number") + individual_case_number_confirm = cleaned_data.get("individual_case_number_confirm") + recorded_number = cleaned_data.get("recorded_number") + recorded_number_confirm = cleaned_data.get("recorded_number_confirm") + national_number = cleaned_data.get("national_number") + national_number_confirm = cleaned_data.get("national_number_confirm") + syrian_national_number = cleaned_data.get("syrian_national_number") + syrian_national_number_confirm = cleaned_data.get("syrian_national_number_confirm") + sop_national_number = cleaned_data.get("sop_national_number") + sop_national_number_confirm = cleaned_data.get("sop_national_number_confirm") + + parent_individual_case_number = cleaned_data.get("parent_individual_case_number") + parent_individual_case_number_confirm = cleaned_data.get("parent_individual_case_number_confirm") + parent_national_number = cleaned_data.get("parent_national_number") + parent_national_number_confirm = cleaned_data.get("parent_national_number_confirm") + sop_parent_national_number = cleaned_data.get("parent_sop_national_number") + sop_parent_national_number_confirm = cleaned_data.get("parent_sop_national_number_confirm") + parent_syrian_national_number = cleaned_data.get("parent_syrian_national_number") + parent_syrian_national_number_confirm = cleaned_data.get("parent_syrian_national_number_confirm") + + if phone_number != phone_number_confirm: + msg = "The phone numbers are not matched" + self.add_error('phone_number_confirm', msg) + + if id_type == 'UNHCR Registered': + if not case_number: + self.add_error('case_number', 'This field is required') + + if case_number != case_number_confirm: + msg = "The case numbers are not matched" + self.add_error('case_number_confirm', msg) + + if parent_individual_case_number != parent_individual_case_number_confirm: + msg = "The individual case numbers are not matched" + self.add_error('parent_individual_case_number_confirm', msg) + + if individual_case_number != individual_case_number_confirm: + msg = "The individual case numbers are not matched" + self.add_error('individual_case_number_confirm', msg) + + if id_type == 'UNHCR Recorded': + if not recorded_number: + self.add_error('recorded_number', 'This field is required') + + if recorded_number != recorded_number_confirm: + msg = "The recorded numbers are not matched" + self.add_error('recorded_number_confirm', msg) + + if id_type == 'Syrian national ID': + + if not parent_syrian_national_number: + self.add_error('parent_syrian_national_number', 'This field is required') + + if not parent_syrian_national_number_confirm: + self.add_error('parent_syrian_national_number_confirm', 'This field is required') + + if parent_syrian_national_number_confirm and not len(parent_syrian_national_number_confirm) == 11: + msg = "Please enter a valid number (11 digits)" + self.add_error('parent_syrian_national_number_confirm', msg) + + if parent_syrian_national_number and not len(parent_syrian_national_number) == 11: + msg = "Please enter a valid number (11 digits)" + self.add_error('parent_syrian_national_number', msg) + + if parent_syrian_national_number != parent_syrian_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('parent_syrian_national_number_confirm', msg) + + if syrian_national_number != syrian_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('syrian_national_number_confirm', msg) + + if id_type == 'Lebanese national ID': + if not parent_national_number: + self.add_error('parent_national_number', 'This field is required') + + if not parent_national_number_confirm: + self.add_error('parent_national_number_confirm', 'This field is required') + + if parent_national_number and not len(parent_national_number) == 12: + msg = "Please enter a valid number (12 digits)" + self.add_error('parent_national_number', msg) + + if parent_national_number_confirm and not len(parent_national_number_confirm) == 12: + msg = "Please enter a valid number (12 digits)" + self.add_error('parent_national_number_confirm', msg) + + if parent_national_number != parent_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('parent_national_number_confirm', msg) + + if national_number != national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('national_number_confirm', msg) + + if id_type == 'Palestinian national ID': + if not sop_parent_national_number: + self.add_error('parent_sop_national_number', 'This field is required') + + if not sop_parent_national_number_confirm: + self.add_error('parent_sop_national_number_confirm', 'This field is required') + + if sop_parent_national_number != sop_parent_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('parent_sop_national_number_confirm', msg) + + if sop_national_number != sop_national_number_confirm: + msg = "The national numbers are not matched" + self.add_error('sop_national_number_confirm', msg) + + def save(self, request=None, instance=None, serializer=None): + super(ABLNForm, self).save(request=request, instance=instance, serializer=ABLNSerializer) + + class Meta: + model = ABLN + fields = CommonForm.Meta.fields + ( + # 'cycle', + # 'referral', + 'first_attendance_date', + 'student_birthday_year', + 'student_family_status', + 'student_have_children', + 'have_labour', + 'labours', + 'labour_hours', + 'phone_number', + 'phone_number_confirm', + 'id_type', + 'case_number', + 'case_number_confirm', + 'individual_case_number', + 'individual_case_number_confirm', + 'parent_individual_case_number', + 'parent_individual_case_number_confirm', + 'recorded_number', + 'recorded_number_confirm', + 'national_number', + 'national_number_confirm', + 'syrian_national_number', + 'syrian_national_number_confirm', + 'sop_national_number', + 'sop_national_number_confirm', + 'parent_national_number', + 'parent_national_number_confirm', + 'parent_syrian_national_number', + 'parent_syrian_national_number_confirm', + 'parent_sop_national_number', + 'parent_sop_national_number_confirm', + 'no_child_id_confirmation', + 'source_of_identification', + 'other_nationality', + 'education_status', + 'caretaker_first_name', + 'caretaker_middle_name', + 'caretaker_last_name', + 'caretaker_mother_name', + ) + + class Media: + js = ( + # 'js/jquery-3.3.1.min.js', + # 'js/jquery-ui-1.12.1.js', + # 'js/validator.js', + # 'js/registrations.js', + ) + + +class ABLNAssessmentForm(forms.ModelForm): + + participation = forms.ChoiceField( + label=_('How was the level of child participation in the program?'), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('less_than_3days', _('Less than 3 absence days')), + ('3_7_days', _('3 to 7 absence days')), + ('7_12_days', _('7 to 12 absence days')), + ('more_than_12days', _('More than 12 absence days')), + ('no_absence', _('No Absence')) + ), + initial='' + ) + learning_result = forms.ChoiceField( + label=_('Based on the overall score, what is the recommended learning path?'), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('graduated_to_abln_next_round_same_level', _('Graduated to the next round, same level')), + ('graduated_to_abln_next_round_higher_level', _('Graduated to the next round, higher level')), + ('referred_to_bln', _('Referred to BLN')), + ('referred_to_ybln', _('Referred to YBLN')), + # ('referred_to_alp', _('Referred to ALP')), + ('referred_to_cbt', _('Referred to CBT')), + ('dropout', _('Dropout, referral not possible')), + ), + initial='' + ) + barriers = forms.MultipleChoiceField( + label=_('The main barriers affecting the daily attendance and performance ' + 'of the child or drop out of programme? (Select more than one if applicable)'), + choices=CLM.BARRIERS, + widget=forms.CheckboxSelectMultiple, + required=True + ) + + # cycle_completed = forms.TypedChoiceField( + # label=_("Completed the cycle?"), + # choices=YES_NO_CHOICE, + # coerce=lambda x: bool(int(x)), + # widget=forms.RadioSelect, + # required=True, + # initial=False, + # ) + # enrolled_at_school = forms.TypedChoiceField( + # label=_("Enrolled at school?"), + # choices=YES_NO_CHOICE, + # coerce=lambda x: bool(int(x)), + # widget=forms.RadioSelect, + # required=True, + # initial=False, + # ) + clm_type = forms.CharField(widget=forms.HiddenInput, required=False) + + def __init__(self, *args, **kwargs): + self.request = kwargs.pop('request', None) + super(ABLNAssessmentForm, self).__init__(*args, **kwargs) + + post_test = '' + post_test_button = ' btn-outline-secondary disabled' + instance = kwargs['instance'] if 'instance' in kwargs else '' + self.fields['clm_type'].initial = 'ABLN' + + display_assessment = '' + form_action = reverse('clm:abln_post_assessment', kwargs={'pk': instance.id}) + + if instance.pre_test: + post_test_button = ' btn-outline-success ' + post_test = instance.assessment_form( + stage='post_test', + assessment_slug='abln_post_test', + callback=self.request.build_absolute_uri(reverse('clm:abln_post_assessment', kwargs={'pk': instance.id})) + ) + if instance.post_test: + post_test_button = ' btn-success ' + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = form_action + self.helper.layout = Layout( + Fieldset( + None, + Div( + 'clm_type', + HTML('

' + _('Assessment data') + '

') + ), + Div( + HTML( + '
' + _('Post-assessment') + '
'), + css_class='row', + ), + Div( + HTML('
'), + css_class='row' + ), + css_class='bd-callout bd-callout-warning' + display_assessment + ), + Fieldset( + None, + Div( + HTML('

' + _('School evaluation') + '

') + ), + Div( + HTML('1'), + Div('unsuccessful_posttest_reason', css_class='col-md-4'), + HTML('2'), + Div('participation', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('3'), + Div('barriers', css_class='col-md-4'), + HTML('4'), + Div('learning_result', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('5'), + Div('cycle_completed', css_class='col-md-4'), + HTML('6'), + Div('enrolled_at_school', css_class='col-md-4'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning'+display_assessment + ), + FormActions( + Submit('save', _('Save'), css_class='col-md-2'), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + instance = super(ABLNAssessmentForm, self).save() + instance.modified_by = request.user + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = ABLN + fields = ( + 'participation', + 'barriers', + 'learning_result', + 'unsuccessful_posttest_reason', + 'cycle_completed', + 'enrolled_at_school', + ) + + +class BLNAssessmentForm(forms.ModelForm): + + participation = forms.ChoiceField( + label=_('How was the level of child participation in the program?'), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('less_than_10days', _('Less than 10 absence days')), + ('10_15_days', _('10 to 15 absence days')), + ('15_20_days', _('15 to 20 absence days')), + ('more_than_20days', _('More than 20 absence days')), + ('no_absence', _('No Absence')) + ), + initial='' + ) + learning_result = forms.ChoiceField( + label=_('Based on the overall score, what is the recommended learning path?'), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('graduated_to_bln_next_level', _('Graduated to the next level')), + ('graduated_to_bln_next_round_same_level', _('Graduated to the next round, same level')), + ('graduated_to_bln_next_round_higher_level', _('Graduated to the next round, higher level')), + ('referred_to_alp', _('referred to ALP')), + ('referred_public_school', _('Referred to public school')), + ('referred_to_tvet', _('Referred to TVET')), + ('referred_to_ybln', _('Referred to YBLN')), + ('dropout', _('Dropout, referral not possible')), + ), + initial='' + ) + barriers = forms.MultipleChoiceField( + label=_('The main barriers affecting the daily attendance and performance ' + 'of the child or drop out of programme? (Select more than one if applicable)'), + choices=CLM.BARRIERS, + widget=forms.CheckboxSelectMultiple, + required=True + ) + + clm_type = forms.CharField(widget=forms.HiddenInput, required=False) + + def __init__(self, *args, **kwargs): + self.request = kwargs.pop('request', None) + super(BLNAssessmentForm, self).__init__(*args, **kwargs) + + post_test = '' + post_test_button = ' btn-outline-secondary disabled' + instance = kwargs['instance'] if 'instance' in kwargs else '' + self.fields['clm_type'].initial = 'BLN' + + display_assessment = '' + form_action = reverse('clm:bln_post_assessment', kwargs={'pk': instance.id}) + + if instance.pre_test: + post_test_button = ' btn-outline-success ' + post_test = instance.assessment_form( + stage='post_test', + assessment_slug='bln_post_test', + callback=self.request.build_absolute_uri(reverse('clm:bln_post_assessment', kwargs={'pk': instance.id})) + ) + if instance.post_test: + post_test_button = ' btn-success ' + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = form_action + self.helper.layout = Layout( + Fieldset( + None, + Div( + 'clm_type', + HTML('

' + _('Assessment data') + '

') + ), + Div( + HTML( + '
' + _('Post-assessment') + '
'), + css_class='row', + ), + Div( + HTML('
'), + css_class='row' + ), + css_class='bd-callout bd-callout-warning' + display_assessment + ), + Fieldset( + None, + Div( + HTML('

' + _('School evaluation') + '

') + ), + Div( + HTML('1'), + Div('unsuccessful_posttest_reason', css_class='col-md-4'), + HTML('2'), + Div('participation', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('3'), + Div('barriers', css_class='col-md-4'), + HTML('4'), + Div('learning_result', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('5'), + Div('cycle_completed', css_class='col-md-4'), + HTML('6'), + Div('enrolled_at_school', css_class='col-md-4'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning'+display_assessment + ), + FormActions( + Submit('save', _('Save'), css_class='col-md-2'), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + instance = super(BLNAssessmentForm, self).save() + instance.modified_by = request.user + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = BLN + fields = ( + 'participation', + 'barriers', + 'learning_result', + 'unsuccessful_posttest_reason', + 'cycle_completed', + 'enrolled_at_school', + ) + + +class CBECEAssessmentForm(forms.ModelForm): + + participation = forms.ChoiceField( + label=_('How was the level of child participation in the program?'), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('less_than_5days', _('Less than 5 absence days')), + ('5_10_days', _('5 to 10 absence days')), + ('10_15_days', _('10 to 15 absence days')), + ('more_than_15days', _('More than 15 absence days')), + ('no_absence', _('No Absence')) + ), + initial='' + ) + learning_result = forms.ChoiceField( + label=_('Based on the overall score, what is the recommended learning path?'), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('repeat_level', _('Repeat level')), + ('graduated_next_level', _('Graduated to the next level')), + ('graduated_to_formal_kg', _('Graduated to formal education - KG')), + ('graduated_to_formal_education_level1', _('Graduated to formal education - Level 1')), + ('referred_to_another_program', _('Referred to another program')), + ('dropout', _('Dropout, referral not possible')) + ), + initial='' + ) + barriers = forms.MultipleChoiceField( + label=_('The main barriers affecting the daily attendance and performance ' + 'of the child or drop out of programme? (Select more than one if applicable)'), + choices=CLM.BARRIERS, + widget=forms.CheckboxSelectMultiple, + required=True + ) + final_grade = forms.FloatField( + label=_('Final grade') + ' (/80)', required=False, + widget=forms.NumberInput, + min_value=0, max_value=80 + ) + # cycle_completed = forms.TypedChoiceField( + # label=_("Completed the cycle?"), + # choices=YES_NO_CHOICE, + # coerce=lambda x: bool(int(x)), + # widget=forms.RadioSelect, + # required=True, + # initial=False, + # ) + # enrolled_at_school = forms.TypedChoiceField( + # label=_("Enrolled at school?"), + # choices=YES_NO_CHOICE, + # coerce=lambda x: bool(int(x)), + # widget=forms.RadioSelect, + # required=True, + # initial=False, + # ) + clm_type = forms.CharField(widget=forms.HiddenInput, required=False) + + def __init__(self, *args, **kwargs): + self.request = kwargs.pop('request', None) + super(CBECEAssessmentForm, self).__init__(*args, **kwargs) + + post_test = '' + post_test_button = ' btn-outline-secondary disabled' + instance = kwargs['instance'] if 'instance' in kwargs else '' + self.fields['clm_type'].initial = 'CBECE' + + display_assessment = '' + form_action = reverse('clm:cbece_post_assessment', kwargs={'pk': instance.id}) + + if instance.pre_test: + post_test_button = ' btn-outline-success ' + post_test = instance.assessment_form( + stage='post_test', + assessment_slug='cbece_post_test', + callback=self.request.build_absolute_uri(reverse('clm:cbece_post_assessment', kwargs={'pk': instance.id})) + ) + if instance.post_test: + post_test_button = ' btn-success ' + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = form_action + self.helper.layout = Layout( + Fieldset( + None, + Div( + 'clm_type', + HTML('

' + _('Assessment data') + '

') + ), + Div( + HTML( + '
' + _('Post-assessment') + '
'), + css_class='row', + ), + Div( + HTML('
'), + css_class='row' + ), + css_class='bd-callout bd-callout-warning' + display_assessment + ), + Fieldset( + None, + Div( + HTML('

' + _('School evaluation') + '

') + ), + Div( + HTML('3'), + Div('final_grade', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('1'), + Div('unsuccessful_posttest_reason', css_class='col-md-4'), + HTML('2'), + Div('participation', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('3'), + Div('barriers', css_class='col-md-4'), + HTML('4'), + Div('learning_result', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML('5'), + Div('cycle_completed', css_class='col-md-4'), + HTML('6'), + Div('enrolled_at_school', css_class='col-md-4'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning'+display_assessment + ), + FormActions( + Submit('save', _('Save'), css_class='col-md-2'), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + instance = super(CBECEAssessmentForm, self).save() + instance.modified_by = request.user + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = CBECE + fields = ( + 'final_grade', + 'participation', + 'barriers', + 'learning_result', + 'unsuccessful_posttest_reason', + 'cycle_completed', + 'enrolled_at_school', + ) + + +class BLNAdminForm(forms.ModelForm): + + student = forms.ModelChoiceField( + queryset=Student.objects.all(), + widget=autocomplete.ModelSelect2(url='student_autocomplete') + ) + + def __init__(self, *args, **kwargs): + super(BLNAdminForm, self).__init__(*args, **kwargs) + + class Meta: + model = BLN + fields = '__all__' + + +class ABLNAdminForm(forms.ModelForm): + + student = forms.ModelChoiceField( + queryset=Student.objects.all(), + widget=autocomplete.ModelSelect2(url='student_autocomplete') + ) + + def __init__(self, *args, **kwargs): + super(ABLNAdminForm, self).__init__(*args, **kwargs) + + class Meta: + model = ABLN + fields = '__all__' + + +class RSAdminForm(forms.ModelForm): + + student = forms.ModelChoiceField( + queryset=Student.objects.all(), + widget=autocomplete.ModelSelect2(url='student_autocomplete') + ) + + def __init__(self, *args, **kwargs): + super(RSAdminForm, self).__init__(*args, **kwargs) + + class Meta: + model = RS + fields = '__all__' + + +class CBECEAdminForm(forms.ModelForm): + + student = forms.ModelChoiceField( + queryset=Student.objects.all(), + widget=autocomplete.ModelSelect2(url='student_autocomplete') + ) + + def __init__(self, *args, **kwargs): + super(CBECEAdminForm, self).__init__(*args, **kwargs) + + class Meta: + model = CBECE + fields = '__all__' + + +class BLNReferralForm(forms.ModelForm): + + def __init__(self, *args, **kwargs): + super(BLNReferralForm, self).__init__(*args, **kwargs) + + instance = kwargs['instance'] + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = reverse('clm:bln_referral', kwargs={'pk': instance.id}) + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('

' + _('Referral 1') + '

') + ), + Div( + HTML('1'), + Div('referral_programme_type_1', css_class='col-md-3'), + HTML('2'), + Div('referral_partner_1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('3'), + Div('referral_date_1', css_class='col-md-3'), + HTML('4'), + Div('confirmation_date_1', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Referral 2') + '

') + ), + Div( + HTML('1'), + Div('referral_programme_type_2', css_class='col-md-3'), + HTML('2'), + Div('referral_partner_2', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('3'), + Div('referral_date_2', css_class='col-md-3'), + HTML('4'), + Div('confirmation_date_2', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Referral 3') + '

') + ), + Div( + HTML('1'), + Div('referral_programme_type_3', css_class='col-md-3'), + HTML('2'), + Div('referral_partner_3', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('3'), + Div('referral_date_3', css_class='col-md-3'), + HTML('4'), + Div('confirmation_date_3', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + instance = super(BLNReferralForm, self).save() + instance.modified_by = request.user + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = BLN + fields = ( + 'referral_programme_type_1', + 'referral_partner_1', + 'referral_date_1', + 'confirmation_date_1', + 'referral_programme_type_2', + 'referral_partner_2', + 'referral_date_2', + 'confirmation_date_2', + 'referral_programme_type_3', + 'referral_partner_3', + 'referral_date_3', + 'confirmation_date_3', + ) + + class Media: + js = ( + # 'js/validator.js', + ) + + +class BLNFollowupForm(forms.ModelForm): + + def __init__(self, *args, **kwargs): + super(BLNFollowupForm, self).__init__(*args, **kwargs) + + instance = kwargs['instance'] + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = reverse('clm:bln_followup', kwargs={'pk': instance.id}) + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('

' + _('Follow-up first call') + '

') + ), + Div( + HTML('1'), + Div('followup_call_date_1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('followup_call_reason_1', css_class='col-md-3'), + HTML('3'), + Div('followup_call_result_1', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Follow-up second call') + '

') + ), + Div( + HTML('1'), + Div('followup_call_date_2', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('followup_call_reason_2', css_class='col-md-3'), + HTML('3'), + Div('followup_call_result_2', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Follow-up Household visit') + '

') + ), + Div( + HTML('1'), + Div('followup_visit_date_1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('followup_visit_reason_1', css_class='col-md-3'), + HTML('3'), + Div('followup_visit_result_1', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + instance = super(BLNFollowupForm, self).save() + instance.modified_by = request.user + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = BLN + fields = ( + 'followup_call_date_1', + 'followup_call_reason_1', + 'followup_call_result_1', + 'followup_call_date_2', + 'followup_call_reason_2', + 'followup_call_result_2', + 'followup_visit_date_1', + 'followup_visit_reason_1', + 'followup_visit_result_1', + ) + + class Media: + js = ( + # 'js/validator.js', + ) + + +class ABLNReferralForm(forms.ModelForm): + + def __init__(self, *args, **kwargs): + super(ABLNReferralForm, self).__init__(*args, **kwargs) + + instance = kwargs['instance'] + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = reverse('clm:abln_referral', kwargs={'pk': instance.id}) + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('

' + _('Referral 1') + '

') + ), + Div( + HTML('1'), + Div('referral_programme_type_1', css_class='col-md-3'), + HTML('2'), + Div('referral_partner_1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('3'), + Div('referral_date_1', css_class='col-md-3'), + HTML('4'), + Div('confirmation_date_1', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Referral 2') + '

') + ), + Div( + HTML('1'), + Div('referral_programme_type_2', css_class='col-md-3'), + HTML('2'), + Div('referral_partner_2', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('3'), + Div('referral_date_2', css_class='col-md-3'), + HTML('4'), + Div('confirmation_date_2', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Referral 3') + '

') + ), + Div( + HTML('1'), + Div('referral_programme_type_3', css_class='col-md-3'), + HTML('2'), + Div('referral_partner_3', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('3'), + Div('referral_date_3', css_class='col-md-3'), + HTML('4'), + Div('confirmation_date_3', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + instance = super(ABLNReferralForm, self).save() + instance.modified_by = request.user + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = ABLN + fields = ( + 'referral_programme_type_1', + 'referral_partner_1', + 'referral_date_1', + 'confirmation_date_1', + 'referral_programme_type_2', + 'referral_partner_2', + 'referral_date_2', + 'confirmation_date_2', + 'referral_programme_type_3', + 'referral_partner_3', + 'referral_date_3', + 'confirmation_date_3', + ) + + class Media: + js = ( + # 'js/validator.js', + ) + + +class ABLNFollowupForm(forms.ModelForm): + + def __init__(self, *args, **kwargs): + super(ABLNFollowupForm, self).__init__(*args, **kwargs) + + instance = kwargs['instance'] + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = reverse('clm:abln_followup', kwargs={'pk': instance.id}) + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('

' + _('Follow-up first call') + '

') + ), + Div( + HTML('1'), + Div('followup_call_date_1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('followup_call_reason_1', css_class='col-md-3'), + HTML('3'), + Div('followup_call_result_1', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Follow-up second call') + '

') + ), + Div( + HTML('1'), + Div('followup_call_date_2', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('followup_call_reason_2', css_class='col-md-3'), + HTML('3'), + Div('followup_call_result_2', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Follow-up Household visit') + '

') + ), + Div( + HTML('1'), + Div('followup_visit_date_1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('followup_visit_reason_1', css_class='col-md-3'), + HTML('3'), + Div('followup_visit_result_1', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + instance = super(ABLNFollowupForm, self).save() + instance.modified_by = request.user + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = ABLN + fields = ( + 'followup_call_date_1', + 'followup_call_reason_1', + 'followup_call_result_1', + 'followup_call_date_2', + 'followup_call_reason_2', + 'followup_call_result_2', + 'followup_visit_date_1', + 'followup_visit_reason_1', + 'followup_visit_result_1', + ) + + class Media: + js = ( + # 'js/validator.js', + ) + + +class CBECEReferralForm(forms.ModelForm): + + def __init__(self, *args, **kwargs): + super(CBECEReferralForm, self).__init__(*args, **kwargs) + + instance = kwargs['instance'] + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = reverse('clm:cbece_referral', kwargs={'pk': instance.id}) + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('

' + _('Referral 1') + '

') + ), + Div( + HTML('1'), + Div('referral_programme_type_1', css_class='col-md-3'), + HTML('2'), + Div('referral_partner_1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('3'), + Div('referral_date_1', css_class='col-md-3'), + HTML('4'), + Div('confirmation_date_1', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Referral 2') + '

') + ), + Div( + HTML('1'), + Div('referral_programme_type_2', css_class='col-md-3'), + HTML('2'), + Div('referral_partner_2', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('3'), + Div('referral_date_2', css_class='col-md-3'), + HTML('4'), + Div('confirmation_date_2', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Referral 3') + '

') + ), + Div( + HTML('1'), + Div('referral_programme_type_3', css_class='col-md-3'), + HTML('2'), + Div('referral_partner_3', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('3'), + Div('referral_date_3', css_class='col-md-3'), + HTML('4'), + Div('confirmation_date_3', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + instance = super(CBECEReferralForm, self).save() + instance.modified_by = request.user + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) class Meta: model = CBECE - fields = '__all__' + fields = ( + 'referral_programme_type_1', + 'referral_partner_1', + 'referral_date_1', + 'confirmation_date_1', + 'referral_programme_type_2', + 'referral_partner_2', + 'referral_date_2', + 'confirmation_date_2', + 'referral_programme_type_3', + 'referral_partner_3', + 'referral_date_3', + 'confirmation_date_3', + ) + + class Media: + js = ( + # 'js/validator.js', + ) + + +class CBECEFollowupForm(forms.ModelForm): + + def __init__(self, *args, **kwargs): + super(CBECEFollowupForm, self).__init__(*args, **kwargs) + + instance = kwargs['instance'] + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = reverse('clm:cbece_followup', kwargs={'pk': instance.id}) + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('

' + _('Follow-up first call') + '

') + ), + Div( + HTML('1'), + Div('followup_call_date_1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('followup_call_reason_1', css_class='col-md-3'), + HTML('3'), + Div('followup_call_result_1', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Follow-up second call') + '

') + ), + Div( + HTML('1'), + Div('followup_call_date_2', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('followup_call_reason_2', css_class='col-md-3'), + HTML('3'), + Div('followup_call_result_2', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('

' + _('Follow-up Household visit') + '

') + ), + Div( + HTML('1'), + Div('followup_visit_date_1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('2'), + Div('followup_visit_reason_1', css_class='col-md-3'), + HTML('3'), + Div('followup_visit_result_1', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + HTML('' + _('Back to list') + ''), + ) + ) + + def save(self, instance=None, request=None): + instance = super(CBECEFollowupForm, self).save() + instance.modified_by = request.user + instance.save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = CBECE + fields = ( + 'followup_call_date_1', + 'followup_call_reason_1', + 'followup_call_result_1', + 'followup_call_date_2', + 'followup_call_reason_2', + 'followup_call_result_2', + 'followup_visit_date_1', + 'followup_visit_reason_1', + 'followup_visit_result_1', + ) + + class Media: + js = ( + # 'js/validator.js', + ) diff --git a/student_registration/clm/migrations/0045_disability_active.py b/student_registration/clm/migrations/0045_disability_active.py new file mode 100644 index 000000000..cec260899 --- /dev/null +++ b/student_registration/clm/migrations/0045_disability_active.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-14 21:13 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0044_auto_20180405_1035'), + ] + + operations = [ + migrations.AddField( + model_name='disability', + name='active', + field=models.BooleanField(default=True), + ), + ] diff --git a/student_registration/clm/migrations/0046_auto_20190314_2341.py b/student_registration/clm/migrations/0046_auto_20190314_2341.py new file mode 100644 index 000000000..20d783603 --- /dev/null +++ b/student_registration/clm/migrations/0046_auto_20190314_2341.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-14 21:41 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0045_disability_active'), + ] + + operations = [ + migrations.AddField( + model_name='bln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='unsuccessful pre test reason'), + ), + migrations.AddField( + model_name='cbece', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='unsuccessful pre test reason'), + ), + migrations.AddField( + model_name='rs', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='unsuccessful pre test reason'), + ), + ] diff --git a/student_registration/clm/migrations/0047_auto_20190320_1255.py b/student_registration/clm/migrations/0047_auto_20190320_1255.py new file mode 100644 index 000000000..ee436082e --- /dev/null +++ b/student_registration/clm/migrations/0047_auto_20190320_1255.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-20 10:55 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0046_auto_20190314_2341'), + ] + + operations = [ + migrations.AlterField( + model_name='bln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='cbece', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='rs', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + ] diff --git a/student_registration/clm/migrations/0048_auto_20190328_1416.py b/student_registration/clm/migrations/0048_auto_20190328_1416.py new file mode 100644 index 000000000..ad1a6db35 --- /dev/null +++ b/student_registration/clm/migrations/0048_auto_20190328_1416.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-28 12:16 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0047_auto_20190320_1255'), + ] + + operations = [ + migrations.AlterField( + model_name='bln', + name='have_labour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('no', '\u0643\u0644\u0627'), ('yes_morning', '\u0646\u0639\u0645 - \u0642\u0628\u0644 \u0627\u0644\u0638\u0647\u0631'), ('yes_afternoon', '\u0646\u0639\u0645 - \u0628\u0639\u062f \u0627\u0644\u0638\u0647\u0631'), ('yes_all_day', '\u0646\u0639\u0645 - \u0643\u0644 \u0627\u0644\u0646\u0647\u0627\u0631')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0647\u0644 \u064a\u0634\u0627\u0631\u0643 \u0627\u0644\u0637\u0641\u0644 \u0641\u064a \u0639\u0645\u0644\u061f'), + ), + migrations.AlterField( + model_name='bln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('attended_public_school', '\u0627\u062d\u064a\u0644 \u0627\u0644\u0649 \u0645\u062f\u0631\u0633\u0629 \u0631\u0633\u0645\u064a\u0629'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_to_tvet', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c TVET'), ('ready_to_alp_but_not_possible', '\u062c\u0627\u0647\u0632 \u0644\u0628\u0631\u0646\u0627\u0645\u062c ALP \u0648\u0644\u0643\u0646 \u0627\u0644\u0625\u062d\u0627\u0644\u0629 \u0644\u064a\u0633\u062a \u0645\u0645\u0643\u0646\u0629'), ('reenrolled_in_alp', '\u0625\u0639\u0627\u062f\u0629 \u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u062c\u0648\u0644\u0629 \u0623\u062e\u0631\u0649 \u0645\u0646 BLN'), ('not_enrolled_any_program', '\u063a\u064a\u0631 \u0645\u0644\u062a\u062d\u0642 \u0628\u0623\u064a \u0628\u0631\u0646\u0627\u0645\u062c \u062a\u0639\u0644\u064a\u0645\u064a'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='cbece', + name='have_labour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('no', '\u0643\u0644\u0627'), ('yes_morning', '\u0646\u0639\u0645 - \u0642\u0628\u0644 \u0627\u0644\u0638\u0647\u0631'), ('yes_afternoon', '\u0646\u0639\u0645 - \u0628\u0639\u062f \u0627\u0644\u0638\u0647\u0631'), ('yes_all_day', '\u0646\u0639\u0645 - \u0643\u0644 \u0627\u0644\u0646\u0647\u0627\u0631')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0647\u0644 \u064a\u0634\u0627\u0631\u0643 \u0627\u0644\u0637\u0641\u0644 \u0641\u064a \u0639\u0645\u0644\u061f'), + ), + migrations.AlterField( + model_name='cbece', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('repeat_level', '\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u062a\u0648\u0649'), ('graduated_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('graduated_to_formal_kg', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0646\u0638\u0627\u0645\u064a - \u0627\u0644\u0631\u0648\u0636\u0629'), ('graduated_to_formal_level1', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0646\u0638\u0627\u0645\u064a - \u0627\u0644\u0635\u0641 \u0627\u0644\u0623\u0648\u0644'), ('referred_to_another_program', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c \u0622\u062e\u0631 \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='rs', + name='have_labour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('no', '\u0643\u0644\u0627'), ('yes_morning', '\u0646\u0639\u0645 - \u0642\u0628\u0644 \u0627\u0644\u0638\u0647\u0631'), ('yes_afternoon', '\u0646\u0639\u0645 - \u0628\u0639\u062f \u0627\u0644\u0638\u0647\u0631'), ('yes_all_day', '\u0646\u0639\u0645 - \u0643\u0644 \u0627\u0644\u0646\u0647\u0627\u0631')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0647\u0644 \u064a\u0634\u0627\u0631\u0643 \u0627\u0644\u0637\u0641\u0644 \u0641\u064a \u0639\u0645\u0644\u061f'), + ), + ] diff --git a/student_registration/clm/migrations/0049_auto_20190403_1228.py b/student_registration/clm/migrations/0049_auto_20190403_1228.py new file mode 100644 index 000000000..21e914308 --- /dev/null +++ b/student_registration/clm/migrations/0049_auto_20190403_1228.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-04-03 09:28 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0048_auto_20190328_1416'), + ] + + operations = [ + migrations.AlterField( + model_name='bln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', 'Family moved'), ('marriage engagement pregnancy', 'Marriage/Engagement/Pregnancy'), ('violence bullying', 'Violence/Bullying'), ('Full time job to support family financially', 'Full time job to support family financially'), ('No interest in pursuing the programme/No value', 'No interest in pursuing the programme/No value')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='cbece', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', 'Family moved'), ('marriage engagement pregnancy', 'Marriage/Engagement/Pregnancy'), ('violence bullying', 'Violence/Bullying'), ('Full time job to support family financially', 'Full time job to support family financially'), ('No interest in pursuing the programme/No value', 'No interest in pursuing the programme/No value')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='cbece', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('repeat_level', '\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u062a\u0648\u0649'), ('graduated_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('graduated_to_formal_kg', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0646\u0638\u0627\u0645\u064a - \u0627\u0644\u0631\u0648\u0636\u0629'), ('graduated_to_formal_level1', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0646\u0638\u0627\u0645\u064a - \u0627\u0644\u0635\u0641 \u0627\u0644\u0623\u0648\u0644'), ('referred_to_another_program', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c \u0622\u062e\u0631 \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='rs', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', 'Family moved'), ('marriage engagement pregnancy', 'Marriage/Engagement/Pregnancy'), ('violence bullying', 'Violence/Bullying'), ('Full time job to support family financially', 'Full time job to support family financially'), ('No interest in pursuing the programme/No value', 'No interest in pursuing the programme/No value')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + ] diff --git a/student_registration/clm/migrations/0050_auto_20190521_1343.py b/student_registration/clm/migrations/0050_auto_20190521_1343.py new file mode 100644 index 000000000..a8ed8f438 --- /dev/null +++ b/student_registration/clm/migrations/0050_auto_20190521_1343.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-05-21 10:43 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0049_auto_20190403_1228'), + ] + + operations = [ + migrations.AlterField( + model_name='bln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', 'Moved back to Syria'), ('Enrolled in formal education', 'Enrolled in formal education'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', '\u0628\u0644\u0637\u062c\u0629/\u0639\u0646\u0641'), ('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='bln', + name='unsuccessful_posttest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Post-test'), + ), + migrations.AlterField( + model_name='bln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('enrolled in formal', 'Enrolled in formal education'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='cbece', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', 'Moved back to Syria'), ('Enrolled in formal education', 'Enrolled in formal education'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', '\u0628\u0644\u0637\u062c\u0629/\u0639\u0646\u0641'), ('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='cbece', + name='unsuccessful_posttest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Post-test'), + ), + migrations.AlterField( + model_name='cbece', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('enrolled in formal', 'Enrolled in formal education'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='rs', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', 'Moved back to Syria'), ('Enrolled in formal education', 'Enrolled in formal education'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', '\u0628\u0644\u0637\u062c\u0629/\u0639\u0646\u0641'), ('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='rs', + name='unsuccessful_posttest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Post-test'), + ), + migrations.AlterField( + model_name='rs', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('enrolled in formal', 'Enrolled in formal education'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + ] diff --git a/student_registration/clm/migrations/0051_auto_20190521_1539.py b/student_registration/clm/migrations/0051_auto_20190521_1539.py new file mode 100644 index 000000000..3b9861588 --- /dev/null +++ b/student_registration/clm/migrations/0051_auto_20190521_1539.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-05-21 12:39 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0050_auto_20190521_1343'), + ] + + operations = [ + migrations.AlterField( + model_name='cbece', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('repeat_level', '\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u062a\u0648\u0649'), ('graduated_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('graduated_to_formal_kg', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0646\u0638\u0627\u0645\u064a - \u0627\u0644\u0631\u0648\u0636\u0629'), ('graduated_to_formal_education_level1', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0646\u0638\u0627\u0645\u064a - \u0627\u0644\u0635\u0641 \u0627\u0644\u0623\u0648\u0644'), ('referred_to_another_program', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c \u0622\u062e\u0631 \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + ] diff --git a/student_registration/clm/migrations/0052_auto_20190523_1227.py b/student_registration/clm/migrations/0052_auto_20190523_1227.py new file mode 100644 index 000000000..0542a7054 --- /dev/null +++ b/student_registration/clm/migrations/0052_auto_20190523_1227.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-05-23 09:27 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0051_auto_20190521_1539'), + ] + + operations = [ + migrations.AlterField( + model_name='bln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('repeat_level', '\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u062a\u0648\u0649'), ('attended_public_school', '\u0627\u062d\u064a\u0644 \u0627\u0644\u0649 \u0645\u062f\u0631\u0633\u0629 \u0631\u0633\u0645\u064a\u0629'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_to_tvet', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c TVET'), ('ready_to_alp_but_not_possible', '\u062c\u0627\u0647\u0632 \u0644\u0628\u0631\u0646\u0627\u0645\u062c ALP \u0648\u0644\u0643\u0646 \u0627\u0644\u0625\u062d\u0627\u0644\u0629 \u0644\u064a\u0633\u062a \u0645\u0645\u0643\u0646\u0629'), ('reenrolled_in_alp', '\u0625\u0639\u0627\u062f\u0629 \u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u062c\u0648\u0644\u0629 \u0623\u062e\u0631\u0649 \u0645\u0646 BLN'), ('not_enrolled_any_program', '\u063a\u064a\u0631 \u0645\u0644\u062a\u062d\u0642 \u0628\u0623\u064a \u0628\u0631\u0646\u0627\u0645\u062c \u062a\u0639\u0644\u064a\u0645\u064a'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + ] diff --git a/student_registration/clm/migrations/0053_auto_20190523_1330.py b/student_registration/clm/migrations/0053_auto_20190523_1330.py new file mode 100644 index 000000000..449869263 --- /dev/null +++ b/student_registration/clm/migrations/0053_auto_20190523_1330.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-05-23 10:30 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0052_auto_20190523_1227'), + ] + + operations = [ + migrations.AlterField( + model_name='bln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('repeat_level', '\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u062a\u0648\u0649'), ('attended_public_school', '\u0627\u062d\u064a\u0644 \u0627\u0644\u0649 \u0645\u062f\u0631\u0633\u0629 \u0631\u0633\u0645\u064a\u0629'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_to_tvet', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c TVET'), ('ready_to_alp_but_not_possible', '\u062c\u0627\u0647\u0632 \u0644\u0628\u0631\u0646\u0627\u0645\u062c ALP \u0648\u0644\u0643\u0646 \u0627\u0644\u0625\u062d\u0627\u0644\u0629 \u0644\u064a\u0633\u062a \u0645\u0645\u0643\u0646\u0629'), ('graduated_to_bln_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + ] diff --git a/student_registration/clm/migrations/0054_abln.py b/student_registration/clm/migrations/0054_abln.py new file mode 100644 index 000000000..eda1eb860 --- /dev/null +++ b/student_registration/clm/migrations/0054_abln.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-06-25 10:46 +from __future__ import unicode_literals + +from django.conf import settings +import django.contrib.postgres.fields +import django.contrib.postgres.fields.jsonb +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0039_auto_20190619_1028'), + ('students', '0042_auto_20171201_1630'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('locations', '0005_auto_20170731_2134'), + ('clm', '0053_auto_20190523_1330'), + ] + + operations = [ + migrations.CreateModel( + name='ABLN', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('location', models.CharField(blank=True, max_length=50, null=True, verbose_name='\u0627\u0644\u0645\u0648\u0642\u0639/\u0645\u0631\u0643\u0632')), + ('language', models.CharField(blank=True, choices=[('english_arabic', '\u0627\u0644\u0627\u0646\u0643\u0644\u064a\u0632\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629'), ('french_arabic', '\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629')], max_length=100, null=True, verbose_name='\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0645\u0639\u062a\u0645\u062f\u0629 \u0641\u064a \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c')), + ('have_labour', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('no', '\u0643\u0644\u0627'), ('yes_morning', '\u0646\u0639\u0645 - \u0642\u0628\u0644 \u0627\u0644\u0638\u0647\u0631'), ('yes_afternoon', '\u0646\u0639\u0645 - \u0628\u0639\u062f \u0627\u0644\u0638\u0647\u0631'), ('yes_all_day', '\u0646\u0639\u0645 - \u0643\u0644 \u0627\u0644\u0646\u0647\u0627\u0631')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0647\u0644 \u064a\u0634\u0627\u0631\u0643 \u0627\u0644\u0637\u0641\u0644 \u0641\u064a \u0639\u0645\u0644\u061f')), + ('labours', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', '\u063a\u064a\u0631 \u0630\u0644\u0643 (\u0641\u0646\u062f\u0642\u060c \u0645\u0637\u0639\u0645\u060c \u0646\u0642\u0644\u060c \u062e\u062f\u0645\u0627\u062a \u0634\u062e\u0635\u064a\u0629 \u0645\u062b\u0644 \u0627\u0644\u062a\u0646\u0638\u064a\u0641\u060c \u0627\u0644\u0639\u0646\u0627\u064a\u0629 \u0628\u0627\u0644\u0634\u0639\u0631\u060c \u0627\u0644\u0637\u0628\u062e \u0648\u0627\u0644\u0625\u0639\u062a\u0646\u0627\u0621 \u0628\u0627\u0644\u0623\u0637\u0641\u0627\u0644)'), ('other', '\u0622\u062e\u0631')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f')), + ('labour_hours', models.IntegerField(blank=True, null=True, verbose_name='\u0643\u0645 \u0633\u0627\u0639\u0629 \u064a\u0639\u0645\u0644 \u0647\u0630\u0627 \u0627\u0644\u0637\u0641\u0644 \u0641\u064a \u0627\u0644\u064a\u0648\u0645\u061f')), + ('status', models.CharField(choices=[('enrolled', 'enrolled'), ('pre_test', 'pre_test'), ('post_test', 'post_test')], default='enrolled', max_length=50)), + ('pre_test', django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True)), + ('pre_test_score', models.CharField(blank=True, max_length=45, null=True, verbose_name='\u0627\u0644\u062a\u0642\u064a\u064a\u0645 \u0639\u0646\u062f \u0627\u0644\u062f\u062e\u0648\u0644 \u0627\u0644\u0649 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c')), + ('post_test', django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True)), + ('post_test_score', models.CharField(blank=True, max_length=45, null=True, verbose_name=' \u0627\u0644\u062a\u0642\u064a\u064a\u0645 \u0641\u064a \u0622\u062e\u0631 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c')), + ('scores', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=dict, null=True)), + ('participation', models.CharField(blank=True, choices=[('', '\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), ('less_than_5days', '\u0623\u0642\u0644 \u0645\u0646 5 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('5_10_days', '5-10 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('10_15_days', '10-15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_15days', '\u0623\u0643\u062b\u0631 \u0645\u0646 15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 ')), + ('barriers', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', 'Moved back to Syria'), ('Enrolled in formal education', 'Enrolled in formal education'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', '\u0628\u0644\u0637\u062c\u0629/\u0639\u0646\u0641'), ('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632')), + ('deleted', models.BooleanField(default=False)), + ('dropout_status', models.BooleanField(default=False)), + ('moved', models.BooleanField(default=False)), + ('outreach_barcode', models.CharField(blank=True, max_length=50, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0628\u0627\u0631\u0643\u0648\u062f')), + ('new_registry', models.CharField(blank=True, choices=[('yes', '\u0646\u0639\u0645'), ('no', '\u0643\u0644\u0627')], max_length=50, null=True, verbose_name='\u064a\u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0644\u0623\u0648\u0644 \u0645\u0631\u0629\u061f')), + ('student_outreached', models.CharField(blank=True, choices=[('yes', '\u0646\u0639\u0645'), ('no', '\u0643\u0644\u0627')], max_length=50, null=True, verbose_name='\u062a\u0645 \u0627\u0644\u062a\u0648\u0627\u0635\u0644 \u0645\u0639 \u0627\u0644\u062a\u0644\u0645\u064a\u0630 \u0645\u0646 \u0642\u0628\u0644\u061f')), + ('have_barcode', models.CharField(blank=True, choices=[('yes', '\u0646\u0639\u0645'), ('no', '\u0643\u0644\u0627')], max_length=50, null=True, verbose_name='\u0644\u062f\u064a\u0647 \u0627\u0644\u0628\u0627\u0631\u0643\u0648\u062f\u061f')), + ('registration_date', models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u062a\u0633\u062c\u064a\u0644')), + ('internal_number', models.CharField(blank=True, max_length=50, null=True, verbose_name='\u0631\u0642\u0645 \u062a\u0633\u0644\u0633\u0644\u064a \u062e\u0627\u0635 \u0628\u0627\u0644\u062c\u0645\u0639\u064a\u0629')), + ('comments', models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0645\u0644\u0627\u062d\u0638\u0627\u062a')), + ('unsuccessful_pretest_reason', models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('enrolled in formal', 'Enrolled in formal education'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test')), + ('unsuccessful_posttest_reason', models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629'), ('uncompleted_participation', '\u0644\u0645 \u064a\u0645\u0643\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0631\u062c\u0648\u0629 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 ')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Post-test')), + ('referral', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('from_same_ngo', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u0627\u0644\u062c\u0645\u0639\u064a\u0629 \u0630\u0627\u062a\u0647\u0627'), ('from_other_ngo', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631\u062c\u0645\u0639\u064a\u0629'), ('form_official_reference', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u0645\u0631\u062c\u0639 \u0631\u0633\u0645\u064a (\u0645\u062e\u062a\u0627\u0631\u060c \u0628\u0644\u062f\u064a\u0629\u060c \u0645\u062f\u064a\u0631 \u0645\u062f\u0631\u0633\u0629\u060c \u0625\u0644\u062e ..)'), ('from_host_community', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u0627\u0644\u0645\u062c\u062a\u0645\u0639 \u0627\u0644\u0645\u0636\u064a\u0641'), ('from_displaced_community', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u0645\u062c\u062a\u0645\u0639 \u0627\u0644\u0646\u0627\u0632\u062d\u064a\u0646')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u0625\u062d\u0627\u0644\u0629 ')), + ('learning_result', models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('repeat_level', '\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u062a\u0648\u0649'), ('attended_public_school', '\u0627\u062d\u064a\u0644 \u0627\u0644\u0649 \u0645\u062f\u0631\u0633\u0629 \u0631\u0633\u0645\u064a\u0629'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_to_tvet', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c TVET'), ('ready_to_alp_but_not_possible', '\u062c\u0627\u0647\u0632 \u0644\u0628\u0631\u0646\u0627\u0645\u062c ALP \u0648\u0644\u0643\u0646 \u0627\u0644\u0625\u062d\u0627\u0644\u0629 \u0644\u064a\u0633\u062a \u0645\u0645\u0643\u0646\u0629'), ('graduated_to_bln_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645')), + ('cycle', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='clm.Cycle', verbose_name='\u0627\u0644\u062f\u0648\u0631\u0629')), + ('disability', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='clm.Disability', verbose_name='\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629')), + ('district', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='locations.Location', verbose_name='\u0627\u0644\u0642\u0636\u0627\u0621')), + ('governorate', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='locations.Location', verbose_name='\u0627\u0644\u0645\u062d\u0627\u0641\u0638\u0629')), + ('hh_educational_level', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='\u0645\u0627 \u0647\u0648 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a \u0644\u0627\u0644\u0634\u062e\u0635 \u0627\u0644\u0642\u064a\u0645 \u0639\u0644\u0649 \u0627\u0644\u0637\u0641\u0644\u061f')), + ('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='\u0627\u062e\u0631 \u062a\u0639\u062f\u064a\u0644 \u0645\u0646 \u0642\u0628\u0644')), + ('owner', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL)), + ('partner', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.PartnerOrganization', verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629')), + ('round', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.CLMRound', verbose_name='Round')), + ('student', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='students.Student', verbose_name='\u0627\u0644\u062a\u0644\u0645\u064a\u0630')), + ], + options={ + 'ordering': ['id'], + 'verbose_name': 'ABLN', + 'verbose_name_plural': 'ABLN', + }, + ), + ] diff --git a/student_registration/clm/migrations/0055_auto_20190708_1410.py b/student_registration/clm/migrations/0055_auto_20190708_1410.py new file mode 100644 index 000000000..14eff238a --- /dev/null +++ b/student_registration/clm/migrations/0055_auto_20190708_1410.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-08 11:10 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('students', '0042_auto_20171201_1630'), + ('clm', '0054_abln'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number'), + ), + migrations.AddField( + model_name='abln', + name='case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number confirm'), + ), + migrations.AddField( + model_name='abln', + name='id_type', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='students.IDType', verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AddField( + model_name='abln', + name='individual_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number'), + ), + migrations.AddField( + model_name='abln', + name='individual_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number confirm'), + ), + migrations.AddField( + model_name='abln', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number '), + ), + migrations.AddField( + model_name='abln', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number confirm'), + ), + migrations.AddField( + model_name='abln', + name='phone_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u0627\u0644\u0647\u0627\u062a\u0641'), + ), + migrations.AddField( + model_name='abln', + name='phone_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Phone number confirm'), + ), + migrations.AddField( + model_name='abln', + name='recorded_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Recorded number'), + ), + migrations.AddField( + model_name='abln', + name='recorded_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Recorded number confirm'), + ), + migrations.AddField( + model_name='bln', + name='case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number'), + ), + migrations.AddField( + model_name='bln', + name='case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number confirm'), + ), + migrations.AddField( + model_name='bln', + name='id_type', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='students.IDType', verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AddField( + model_name='bln', + name='individual_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number'), + ), + migrations.AddField( + model_name='bln', + name='individual_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number confirm'), + ), + migrations.AddField( + model_name='bln', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number '), + ), + migrations.AddField( + model_name='bln', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number confirm'), + ), + migrations.AddField( + model_name='bln', + name='phone_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u0627\u0644\u0647\u0627\u062a\u0641'), + ), + migrations.AddField( + model_name='bln', + name='phone_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Phone number confirm'), + ), + migrations.AddField( + model_name='bln', + name='recorded_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Recorded number'), + ), + migrations.AddField( + model_name='bln', + name='recorded_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Recorded number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number'), + ), + migrations.AddField( + model_name='cbece', + name='case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='id_type', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='students.IDType', verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AddField( + model_name='cbece', + name='individual_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number'), + ), + migrations.AddField( + model_name='cbece', + name='individual_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number '), + ), + migrations.AddField( + model_name='cbece', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='phone_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u0627\u0644\u0647\u0627\u062a\u0641'), + ), + migrations.AddField( + model_name='cbece', + name='phone_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Phone number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='recorded_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Recorded number'), + ), + migrations.AddField( + model_name='cbece', + name='recorded_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Recorded number confirm'), + ), + migrations.AddField( + model_name='rs', + name='case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number'), + ), + migrations.AddField( + model_name='rs', + name='case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number confirm'), + ), + migrations.AddField( + model_name='rs', + name='id_type', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='students.IDType', verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AddField( + model_name='rs', + name='individual_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number'), + ), + migrations.AddField( + model_name='rs', + name='individual_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number confirm'), + ), + migrations.AddField( + model_name='rs', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number '), + ), + migrations.AddField( + model_name='rs', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number confirm'), + ), + migrations.AddField( + model_name='rs', + name='phone_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u0627\u0644\u0647\u0627\u062a\u0641'), + ), + migrations.AddField( + model_name='rs', + name='phone_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Phone number confirm'), + ), + migrations.AddField( + model_name='rs', + name='recorded_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Recorded number'), + ), + migrations.AddField( + model_name='rs', + name='recorded_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Recorded number confirm'), + ), + ] diff --git a/student_registration/clm/migrations/0056_auto_20190709_1334.py b/student_registration/clm/migrations/0056_auto_20190709_1334.py new file mode 100644 index 000000000..444cc6c50 --- /dev/null +++ b/student_registration/clm/migrations/0056_auto_20190709_1334.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-09 10:34 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0055_auto_20190708_1410'), + ] + + operations = [ + migrations.RemoveField( + model_name='abln', + name='id_type', + ), + migrations.RemoveField( + model_name='bln', + name='id_type', + ), + migrations.RemoveField( + model_name='cbece', + name='id_type', + ), + migrations.RemoveField( + model_name='rs', + name='id_type', + ), + ] diff --git a/student_registration/clm/migrations/0057_auto_20190709_1348.py b/student_registration/clm/migrations/0057_auto_20190709_1348.py new file mode 100644 index 000000000..19c26737e --- /dev/null +++ b/student_registration/clm/migrations/0057_auto_20190709_1348.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-09 10:48 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0056_auto_20190709_1334'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AddField( + model_name='bln', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AddField( + model_name='cbece', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AddField( + model_name='rs', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + ] diff --git a/student_registration/clm/migrations/0058_auto_20190724_0947.py b/student_registration/clm/migrations/0058_auto_20190724_0947.py new file mode 100644 index 000000000..e8f40c776 --- /dev/null +++ b/student_registration/clm/migrations/0058_auto_20190724_0947.py @@ -0,0 +1,135 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-24 06:47 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0057_auto_20190709_1348'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='abln', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='abln', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='abln', + name='referral_programme_type_1', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='abln', + name='referral_programme_type_2', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='abln', + name='referral_programme_type_3', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='bln', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='bln', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='bln', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='bln', + name='referral_programme_type_1', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='bln', + name='referral_programme_type_2', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='bln', + name='referral_programme_type_3', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='cbece', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='cbece', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='cbece', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='cbece', + name='referral_programme_type_1', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='cbece', + name='referral_programme_type_2', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='cbece', + name='referral_programme_type_3', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='rs', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='rs', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='rs', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + migrations.AddField( + model_name='rs', + name='referral_programme_type_1', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='rs', + name='referral_programme_type_2', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + migrations.AddField( + model_name='rs', + name='referral_programme_type_3', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name='Programme Type'), + ), + ] diff --git a/student_registration/clm/migrations/0059_auto_20190724_1601.py b/student_registration/clm/migrations/0059_auto_20190724_1601.py new file mode 100644 index 000000000..2993e0c9a --- /dev/null +++ b/student_registration/clm/migrations/0059_auto_20190724_1601.py @@ -0,0 +1,135 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-24 13:01 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0058_auto_20190724_0947'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='confirmation_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='abln', + name='confirmation_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='abln', + name='confirmation_date_3', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='abln', + name='referral_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='abln', + name='referral_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='abln', + name='referral_date_3', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='bln', + name='confirmation_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='bln', + name='confirmation_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='bln', + name='confirmation_date_3', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='bln', + name='referral_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='bln', + name='referral_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='bln', + name='referral_date_3', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='cbece', + name='confirmation_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='cbece', + name='confirmation_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='cbece', + name='confirmation_date_3', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='cbece', + name='referral_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='cbece', + name='referral_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='cbece', + name='referral_date_3', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='rs', + name='confirmation_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='rs', + name='confirmation_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='rs', + name='confirmation_date_3', + field=models.DateField(blank=True, null=True, verbose_name='Date when the receiving organization confirms accepting the child (or child receiving service)'), + ), + migrations.AddField( + model_name='rs', + name='referral_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='rs', + name='referral_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + migrations.AddField( + model_name='rs', + name='referral_date_3', + field=models.DateField(blank=True, null=True, verbose_name='Referral date'), + ), + ] diff --git a/student_registration/clm/migrations/0060_auto_20190724_1656.py b/student_registration/clm/migrations/0060_auto_20190724_1656.py new file mode 100644 index 000000000..f41fed6d9 --- /dev/null +++ b/student_registration/clm/migrations/0060_auto_20190724_1656.py @@ -0,0 +1,195 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-24 13:56 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0059_auto_20190724_1601'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='followup_call_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Call date'), + ), + migrations.AddField( + model_name='abln', + name='followup_call_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Call date'), + ), + migrations.AddField( + model_name='abln', + name='followup_call_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='abln', + name='followup_call_reason_2', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='abln', + name='followup_call_result_1', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='abln', + name='followup_call_result_2', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='abln', + name='followup_visit_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Visit date'), + ), + migrations.AddField( + model_name='abln', + name='followup_visit_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='abln', + name='followup_visit_result_1', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='bln', + name='followup_call_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Call date'), + ), + migrations.AddField( + model_name='bln', + name='followup_call_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Call date'), + ), + migrations.AddField( + model_name='bln', + name='followup_call_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='bln', + name='followup_call_reason_2', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='bln', + name='followup_call_result_1', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='bln', + name='followup_call_result_2', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='bln', + name='followup_visit_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Visit date'), + ), + migrations.AddField( + model_name='bln', + name='followup_visit_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='bln', + name='followup_visit_result_1', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='cbece', + name='followup_call_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Call date'), + ), + migrations.AddField( + model_name='cbece', + name='followup_call_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Call date'), + ), + migrations.AddField( + model_name='cbece', + name='followup_call_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='cbece', + name='followup_call_reason_2', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='cbece', + name='followup_call_result_1', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='cbece', + name='followup_call_result_2', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='cbece', + name='followup_visit_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Visit date'), + ), + migrations.AddField( + model_name='cbece', + name='followup_visit_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='cbece', + name='followup_visit_result_1', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='rs', + name='followup_call_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Call date'), + ), + migrations.AddField( + model_name='rs', + name='followup_call_date_2', + field=models.DateField(blank=True, null=True, verbose_name='Call date'), + ), + migrations.AddField( + model_name='rs', + name='followup_call_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='rs', + name='followup_call_reason_2', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='rs', + name='followup_call_result_1', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='rs', + name='followup_call_result_2', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + migrations.AddField( + model_name='rs', + name='followup_visit_date_1', + field=models.DateField(blank=True, null=True, verbose_name='Visit date'), + ), + migrations.AddField( + model_name='rs', + name='followup_visit_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='Reason'), + ), + migrations.AddField( + model_name='rs', + name='followup_visit_result_1', + field=models.TextField(blank=True, null=True, verbose_name='Results'), + ), + ] diff --git a/student_registration/clm/migrations/0061_auto_20190729_0922.py b/student_registration/clm/migrations/0061_auto_20190729_0922.py new file mode 100644 index 000000000..085db9ddf --- /dev/null +++ b/student_registration/clm/migrations/0061_auto_20190729_0922.py @@ -0,0 +1,235 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-29 06:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0060_auto_20190724_1656'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='no_child_id_confirmation', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AddField( + model_name='abln', + name='no_parent_id_confirmation', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AddField( + model_name='abln', + name='parent_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number'), + ), + migrations.AddField( + model_name='abln', + name='parent_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number confirm'), + ), + migrations.AddField( + model_name='abln', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AddField( + model_name='abln', + name='parent_individual_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number'), + ), + migrations.AddField( + model_name='abln', + name='parent_individual_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number confirm'), + ), + migrations.AddField( + model_name='abln', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number '), + ), + migrations.AddField( + model_name='abln', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number confirm'), + ), + migrations.AddField( + model_name='abln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO or municipality', 'Referral from another NGO or municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='Source of identification of the child'), + ), + migrations.AddField( + model_name='bln', + name='no_child_id_confirmation', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AddField( + model_name='bln', + name='no_parent_id_confirmation', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AddField( + model_name='bln', + name='parent_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number'), + ), + migrations.AddField( + model_name='bln', + name='parent_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number confirm'), + ), + migrations.AddField( + model_name='bln', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AddField( + model_name='bln', + name='parent_individual_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number'), + ), + migrations.AddField( + model_name='bln', + name='parent_individual_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number confirm'), + ), + migrations.AddField( + model_name='bln', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number '), + ), + migrations.AddField( + model_name='bln', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number confirm'), + ), + migrations.AddField( + model_name='bln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO or municipality', 'Referral from another NGO or municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='Source of identification of the child'), + ), + migrations.AddField( + model_name='cbece', + name='no_child_id_confirmation', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AddField( + model_name='cbece', + name='no_parent_id_confirmation', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AddField( + model_name='cbece', + name='parent_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number'), + ), + migrations.AddField( + model_name='cbece', + name='parent_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AddField( + model_name='cbece', + name='parent_individual_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number'), + ), + migrations.AddField( + model_name='cbece', + name='parent_individual_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number '), + ), + migrations.AddField( + model_name='cbece', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO or municipality', 'Referral from another NGO or municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='Source of identification of the child'), + ), + migrations.AddField( + model_name='rs', + name='no_child_id_confirmation', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AddField( + model_name='rs', + name='no_parent_id_confirmation', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AddField( + model_name='rs', + name='parent_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number'), + ), + migrations.AddField( + model_name='rs', + name='parent_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Case number confirm'), + ), + migrations.AddField( + model_name='rs', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AddField( + model_name='rs', + name='parent_individual_case_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number'), + ), + migrations.AddField( + model_name='rs', + name='parent_individual_case_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Individual Case number confirm'), + ), + migrations.AddField( + model_name='rs', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number '), + ), + migrations.AddField( + model_name='rs', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian / Lebanese ID number confirm'), + ), + migrations.AddField( + model_name='rs', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO or municipality', 'Referral from another NGO or municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='Source of identification of the child'), + ), + migrations.AlterField( + model_name='abln', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Child have no ID', 'Child have no ID')], max_length=100, null=True, verbose_name='Child ID type'), + ), + migrations.AlterField( + model_name='bln', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Child have no ID', 'Child have no ID')], max_length=100, null=True, verbose_name='Child ID type'), + ), + migrations.AlterField( + model_name='cbece', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Child have no ID', 'Child have no ID')], max_length=100, null=True, verbose_name='Child ID type'), + ), + migrations.AlterField( + model_name='rs', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Child have no ID', 'Child have no ID')], max_length=100, null=True, verbose_name='Child ID type'), + ), + ] diff --git a/student_registration/clm/migrations/0062_auto_20190729_1025.py b/student_registration/clm/migrations/0062_auto_20190729_1025.py new file mode 100644 index 000000000..6a928dd85 --- /dev/null +++ b/student_registration/clm/migrations/0062_auto_20190729_1025.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-29 07:25 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0061_auto_20190729_0922'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AlterField( + model_name='bln', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AlterField( + model_name='cbece', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AlterField( + model_name='rs', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + ] diff --git a/student_registration/clm/migrations/0063_auto_20190730_0953.py b/student_registration/clm/migrations/0063_auto_20190730_0953.py new file mode 100644 index 000000000..10eccf62a --- /dev/null +++ b/student_registration/clm/migrations/0063_auto_20190730_0953.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-30 06:53 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0062_auto_20190729_1025'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('repeat_abln_level', 'Repeat ABLN level'), ('graduated_to_abln_next_level', 'Graduated to the ABLN next level'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + ] diff --git a/student_registration/clm/migrations/0064_auto_20190731_1022.py b/student_registration/clm/migrations/0064_auto_20190731_1022.py new file mode 100644 index 000000000..1786a96ef --- /dev/null +++ b/student_registration/clm/migrations/0064_auto_20190731_1022.py @@ -0,0 +1,295 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-31 07:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0063_auto_20190730_0953'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='parent_sop_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number '), + ), + migrations.AddField( + model_name='abln', + name='parent_sop_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number confirm'), + ), + migrations.AddField( + model_name='abln', + name='parent_syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number '), + ), + migrations.AddField( + model_name='abln', + name='parent_syrian_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number confirm'), + ), + migrations.AddField( + model_name='abln', + name='sop_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number '), + ), + migrations.AddField( + model_name='abln', + name='sop_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number confirm'), + ), + migrations.AddField( + model_name='abln', + name='syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number '), + ), + migrations.AddField( + model_name='abln', + name='syrian_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number confirm'), + ), + migrations.AddField( + model_name='bln', + name='parent_sop_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number '), + ), + migrations.AddField( + model_name='bln', + name='parent_sop_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number confirm'), + ), + migrations.AddField( + model_name='bln', + name='parent_syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number '), + ), + migrations.AddField( + model_name='bln', + name='parent_syrian_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number confirm'), + ), + migrations.AddField( + model_name='bln', + name='sop_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number '), + ), + migrations.AddField( + model_name='bln', + name='sop_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number confirm'), + ), + migrations.AddField( + model_name='bln', + name='syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number '), + ), + migrations.AddField( + model_name='bln', + name='syrian_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='parent_sop_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number '), + ), + migrations.AddField( + model_name='cbece', + name='parent_sop_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='parent_syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number '), + ), + migrations.AddField( + model_name='cbece', + name='parent_syrian_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='sop_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number '), + ), + migrations.AddField( + model_name='cbece', + name='sop_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number confirm'), + ), + migrations.AddField( + model_name='cbece', + name='syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number '), + ), + migrations.AddField( + model_name='cbece', + name='syrian_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number confirm'), + ), + migrations.AddField( + model_name='rs', + name='parent_sop_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number '), + ), + migrations.AddField( + model_name='rs', + name='parent_sop_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number confirm'), + ), + migrations.AddField( + model_name='rs', + name='parent_syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number '), + ), + migrations.AddField( + model_name='rs', + name='parent_syrian_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number confirm'), + ), + migrations.AddField( + model_name='rs', + name='sop_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number '), + ), + migrations.AddField( + model_name='rs', + name='sop_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Palestinian ID number confirm'), + ), + migrations.AddField( + model_name='rs', + name='syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number '), + ), + migrations.AddField( + model_name='rs', + name='syrian_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Syrian ID number confirm'), + ), + migrations.AlterField( + model_name='abln', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Palestinian national ID', 'Palestinian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Child have no ID', 'Child have no ID')], max_length=100, null=True, verbose_name='Child ID type'), + ), + migrations.AlterField( + model_name='abln', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number '), + ), + migrations.AlterField( + model_name='abln', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number confirm'), + ), + migrations.AlterField( + model_name='abln', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Palestinian national ID', 'Palestinian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AlterField( + model_name='abln', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number '), + ), + migrations.AlterField( + model_name='abln', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number confirm'), + ), + migrations.AlterField( + model_name='bln', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Palestinian national ID', 'Palestinian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Child have no ID', 'Child have no ID')], max_length=100, null=True, verbose_name='Child ID type'), + ), + migrations.AlterField( + model_name='bln', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number '), + ), + migrations.AlterField( + model_name='bln', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number confirm'), + ), + migrations.AlterField( + model_name='bln', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Palestinian national ID', 'Palestinian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AlterField( + model_name='bln', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number '), + ), + migrations.AlterField( + model_name='bln', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number confirm'), + ), + migrations.AlterField( + model_name='cbece', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Palestinian national ID', 'Palestinian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Child have no ID', 'Child have no ID')], max_length=100, null=True, verbose_name='Child ID type'), + ), + migrations.AlterField( + model_name='cbece', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number '), + ), + migrations.AlterField( + model_name='cbece', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number confirm'), + ), + migrations.AlterField( + model_name='cbece', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Palestinian national ID', 'Palestinian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AlterField( + model_name='cbece', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number '), + ), + migrations.AlterField( + model_name='cbece', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number confirm'), + ), + migrations.AlterField( + model_name='rs', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Palestinian national ID', 'Palestinian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Child have no ID', 'Child have no ID')], max_length=100, null=True, verbose_name='Child ID type'), + ), + migrations.AlterField( + model_name='rs', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number '), + ), + migrations.AlterField( + model_name='rs', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number confirm'), + ), + migrations.AlterField( + model_name='rs', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', 'Syrian national ID'), ('Palestinian national ID', 'Palestinian national ID'), ('Lebanese national ID', 'Lebanese national ID'), ('Parent have no ID', 'Parent have no ID')], max_length=100, null=True, verbose_name='Parent ID type'), + ), + migrations.AlterField( + model_name='rs', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number '), + ), + migrations.AlterField( + model_name='rs', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Lebanese ID number confirm'), + ), + ] diff --git a/student_registration/clm/migrations/0065_auto_20190731_1154.py b/student_registration/clm/migrations/0065_auto_20190731_1154.py new file mode 100644 index 000000000..03db2e8d5 --- /dev/null +++ b/student_registration/clm/migrations/0065_auto_20190731_1154.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-07-31 08:54 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0064_auto_20190731_1022'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='other_nationality', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Specify the nationality'), + ), + migrations.AddField( + model_name='bln', + name='other_nationality', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Specify the nationality'), + ), + migrations.AddField( + model_name='cbece', + name='other_nationality', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Specify the nationality'), + ), + migrations.AddField( + model_name='rs', + name='other_nationality', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Specify the nationality'), + ), + migrations.AlterField( + model_name='abln', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', '\u063a\u064a\u0631 \u0630\u0644\u0643 (\u0641\u0646\u062f\u0642\u060c \u0645\u0637\u0639\u0645\u060c \u0646\u0642\u0644\u060c \u062e\u062f\u0645\u0627\u062a \u0634\u062e\u0635\u064a\u0629 \u0645\u062b\u0644 \u0627\u0644\u062a\u0646\u0638\u064a\u0641\u060c \u0627\u0644\u0639\u0646\u0627\u064a\u0629 \u0628\u0627\u0644\u0634\u0639\u0631\u060c \u0627\u0644\u0637\u0628\u062e \u0648\u0627\u0644\u0625\u0639\u062a\u0646\u0627\u0621 \u0628\u0627\u0644\u0623\u0637\u0641\u0627\u0644)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='bln', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', '\u063a\u064a\u0631 \u0630\u0644\u0643 (\u0641\u0646\u062f\u0642\u060c \u0645\u0637\u0639\u0645\u060c \u0646\u0642\u0644\u060c \u062e\u062f\u0645\u0627\u062a \u0634\u062e\u0635\u064a\u0629 \u0645\u062b\u0644 \u0627\u0644\u062a\u0646\u0638\u064a\u0641\u060c \u0627\u0644\u0639\u0646\u0627\u064a\u0629 \u0628\u0627\u0644\u0634\u0639\u0631\u060c \u0627\u0644\u0637\u0628\u062e \u0648\u0627\u0644\u0625\u0639\u062a\u0646\u0627\u0621 \u0628\u0627\u0644\u0623\u0637\u0641\u0627\u0644)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='cbece', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', '\u063a\u064a\u0631 \u0630\u0644\u0643 (\u0641\u0646\u062f\u0642\u060c \u0645\u0637\u0639\u0645\u060c \u0646\u0642\u0644\u060c \u062e\u062f\u0645\u0627\u062a \u0634\u062e\u0635\u064a\u0629 \u0645\u062b\u0644 \u0627\u0644\u062a\u0646\u0638\u064a\u0641\u060c \u0627\u0644\u0639\u0646\u0627\u064a\u0629 \u0628\u0627\u0644\u0634\u0639\u0631\u060c \u0627\u0644\u0637\u0628\u062e \u0648\u0627\u0644\u0625\u0639\u062a\u0646\u0627\u0621 \u0628\u0627\u0644\u0623\u0637\u0641\u0627\u0644)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='rs', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', '\u063a\u064a\u0631 \u0630\u0644\u0643 (\u0641\u0646\u062f\u0642\u060c \u0645\u0637\u0639\u0645\u060c \u0646\u0642\u0644\u060c \u062e\u062f\u0645\u0627\u062a \u0634\u062e\u0635\u064a\u0629 \u0645\u062b\u0644 \u0627\u0644\u062a\u0646\u0638\u064a\u0641\u060c \u0627\u0644\u0639\u0646\u0627\u064a\u0629 \u0628\u0627\u0644\u0634\u0639\u0631\u060c \u0627\u0644\u0637\u0628\u062e \u0648\u0627\u0644\u0625\u0639\u062a\u0646\u0627\u0621 \u0628\u0627\u0644\u0623\u0637\u0641\u0627\u0644)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + ] diff --git a/student_registration/clm/migrations/0066_auto_20190805_1235.py b/student_registration/clm/migrations/0066_auto_20190805_1235.py new file mode 100644 index 000000000..b12544d46 --- /dev/null +++ b/student_registration/clm/migrations/0066_auto_20190805_1235.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-08-05 09:35 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0065_auto_20190731_1154'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='education_status', + field=models.CharField(blank=True, choices=[('Never been in formal education', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled in formal educarioh but did not continue', 'Enrolled in formal educarioh but did not continue')], max_length=100, null=True, verbose_name='Education status'), + ), + migrations.AddField( + model_name='bln', + name='education_status', + field=models.CharField(blank=True, choices=[('Never been in formal education', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled in formal educarioh but did not continue', 'Enrolled in formal educarioh but did not continue')], max_length=100, null=True, verbose_name='Education status'), + ), + migrations.AddField( + model_name='cbece', + name='education_status', + field=models.CharField(blank=True, choices=[('Never been in formal education', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled in formal educarioh but did not continue', 'Enrolled in formal educarioh but did not continue')], max_length=100, null=True, verbose_name='Education status'), + ), + migrations.AddField( + model_name='rs', + name='education_status', + field=models.CharField(blank=True, choices=[('Never been in formal education', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled in formal educarioh but did not continue', 'Enrolled in formal educarioh but did not continue')], max_length=100, null=True, verbose_name='Education status'), + ), + ] diff --git a/student_registration/clm/migrations/0067_auto_20190805_1400.py b/student_registration/clm/migrations/0067_auto_20190805_1400.py new file mode 100644 index 000000000..bea3bf6bb --- /dev/null +++ b/student_registration/clm/migrations/0067_auto_20190805_1400.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-08-05 11:00 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0066_auto_20190805_1235'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', 'Moved back to Syria'), ('Enrolled in formal education', 'Enrolled in formal education'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', '\u0628\u0644\u0637\u062c\u0629/\u0639\u0646\u0641'), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='abln', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', 'Other services (hotel, restaurant, transport, personal services such as cleaning, hair care, cooking and childcare)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='abln', + name='participation', + field=models.CharField(blank=True, choices=[('less_than_3days', 'Less than 3 absence days'), ('3_7_days', '3 to 7 absence days'), ('7_12_days', '7 to 12 absence days'), ('more_than_12days', 'More than 12 absence days')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='bln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', 'Moved back to Syria'), ('Enrolled in formal education', 'Enrolled in formal education'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', '\u0628\u0644\u0637\u062c\u0629/\u0639\u0646\u0641'), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='bln', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', 'Other services (hotel, restaurant, transport, personal services such as cleaning, hair care, cooking and childcare)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='bln', + name='participation', + field=models.CharField(blank=True, choices=[('less_than_10days', 'Less than 10 absence days'), ('10_15_days', '10-15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('15_20_days', '15 to 20 absence days'), ('more_than_20days', 'More than 20 absence days')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='cbece', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', 'Moved back to Syria'), ('Enrolled in formal education', 'Enrolled in formal education'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', '\u0628\u0644\u0637\u062c\u0629/\u0639\u0646\u0641'), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='cbece', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', 'Other services (hotel, restaurant, transport, personal services such as cleaning, hair care, cooking and childcare)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='rs', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', 'Moved back to Syria'), ('Enrolled in formal education', 'Enrolled in formal education'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', '\u0628\u0644\u0637\u062c\u0629/\u0639\u0646\u0641'), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='rs', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', 'Other services (hotel, restaurant, transport, personal services such as cleaning, hair care, cooking and childcare)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + ] diff --git a/student_registration/clm/migrations/0068_auto_20190805_1413.py b/student_registration/clm/migrations/0068_auto_20190805_1413.py new file mode 100644 index 000000000..ffd3401f7 --- /dev/null +++ b/student_registration/clm/migrations/0068_auto_20190805_1413.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-08-05 11:13 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0067_auto_20190805_1400'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('graduated_to_abln_next_level', 'Graduated to the ABLN next level'), ('referred_to_bln', 'Referred to BLN'), ('referred_to_ybln', 'Referred to YBLN'), ('referred_to_alp', 'Referred to ALP'), ('referred_to_cbt', 'Referred to CBT'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='abln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', 'Enrolled and did not do the pre-test'), ('enrolled in formal', 'Enrolled in formal education')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='bln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('graduated_to_bln_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_public_school', 'Referred to public school'), ('referred_to_tvet', 'Referred to TVET'), ('referred_to_ybln', 'Referred to YBLN'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='bln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', 'Enrolled and did not do the pre-test'), ('enrolled in formal', 'Enrolled in formal education')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='cbece', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', 'Enrolled and did not do the pre-test'), ('enrolled in formal', 'Enrolled in formal education')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='rs', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', 'Enrolled and did not do the pre-test'), ('enrolled in formal', 'Enrolled in formal education')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + ] diff --git a/student_registration/clm/migrations/0069_auto_20190819_1002.py b/student_registration/clm/migrations/0069_auto_20190819_1002.py new file mode 100644 index 000000000..248b2b895 --- /dev/null +++ b/student_registration/clm/migrations/0069_auto_20190819_1002.py @@ -0,0 +1,758 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-08-19 07:02 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0039_auto_20190619_1028'), + ('clm', '0068_auto_20190805_1413'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='father_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='What is the educational level of the father?'), + ), + migrations.AddField( + model_name='bln', + name='father_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='What is the educational level of the father?'), + ), + migrations.AddField( + model_name='cbece', + name='father_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='What is the educational level of the father?'), + ), + migrations.AddField( + model_name='rs', + name='father_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='What is the educational level of the father?'), + ), + migrations.AlterField( + model_name='abln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='abln', + name='confirmation_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='abln', + name='confirmation_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='abln', + name='confirmation_date_3', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='abln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal educarioh but did not continue', 'Enrolled in formal educarioh but did not continue')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='abln', + name='followup_call_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062a\u0635\u0627\u0644'), + ), + migrations.AlterField( + model_name='abln', + name='followup_call_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062a\u0635\u0627\u0644'), + ), + migrations.AlterField( + model_name='abln', + name='followup_call_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='abln', + name='followup_call_reason_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='abln', + name='followup_call_result_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='followup_call_result_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='followup_visit_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0632\u064a\u0627\u0631\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='followup_visit_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='abln', + name='followup_visit_result_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='hh_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='\u0645\u0627 \u0647\u0648 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a \u0644\u0644\u0623\u0645\u061f'), + ), + migrations.AlterField( + model_name='abln', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0633\u0648\u0631\u064a\u0629'), ('Palestinian national ID', '\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0641\u0644\u0633\u0637\u0646\u064a\u0629'), ('Lebanese national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), ('Child have no ID', '\u0628\u062f\u0648\u0646 \u0627\u0648\u0631\u0627\u0642 ')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', ' \u062e\u062f\u0645\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u0629 (\u0641\u0646\u062f\u0642\u060c \u0645\u0637\u0639\u0645\u060c \u0646\u0642\u0644\u060c \u062e\u062f\u0645\u0627\u062a \u0634\u062e\u0635\u064a\u0629 \u0645\u062b\u0644 \u0627\u0644\u062a\u0646\u0638\u064a\u0641\u060c \u0627\u0644\u0639\u0646\u0627\u064a\u0629 \u0628\u0627\u0644\u0634\u0639\u0631\u060c \u0627\u0644\u0637\u0628\u062e \u0648\u0627\u0644\u0625\u0639\u062a\u0646\u0627\u0621 \u0628\u0627\u0644\u0623\u0637\u0641\u0627\u0644)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='abln', + name='language', + field=models.CharField(blank=True, choices=[('arabic', '\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629'), ('english_arabic', '\u0627\u0644\u0627\u0646\u0643\u0644\u064a\u0632\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629'), ('french_arabic', '\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629')], max_length=100, null=True, verbose_name='\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0645\u0639\u062a\u0645\u062f\u0629 \u0641\u064a \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='abln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('graduated_to_abln_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('referred_to_bln', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c BLN'), ('referred_to_ybln', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c YBLN'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_to_cbt', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c CBT'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='abln', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u062a\u0623\u0643\u064a\u062f \u0631\u0642\u0645 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='other_nationality', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name=' \u062d\u062f\u062f \u0627\u0644\u062c\u0646\u0633\u064a\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0633\u0648\u0631\u064a\u0629'), ('Palestinian national ID', '\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0641\u0644\u0633\u0637\u0646\u064a\u0629'), ('Lebanese national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), ('Parent have no ID', '\u0628\u062f\u0648\u0646 \u0627\u0648\u0631\u0627\u0642')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 '), + ), + migrations.AlterField( + model_name='abln', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u062a\u0623\u0643\u064a\u062f \u0631\u0642\u0645 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='parent_syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629\u0627\u0644\u0633\u0648\u0631\u064a\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='participation', + field=models.CharField(blank=True, choices=[('less_than_3days', '\u0623\u0642\u0644 \u0645\u0646 3 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('3_7_days', '3-7 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('7_12_days', '7-12 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_12days', '\u0623\u0643\u062b\u0631 \u0645\u0646 12 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='abln', + name='phone_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u062a\u0623\u0643\u064a\u062f \u0627\u0644\u0647\u0627\u062a\u0641'), + ), + migrations.AlterField( + model_name='abln', + name='referral_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='referral_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='referral_date_3', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='referral_programme_type_1', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='abln', + name='referral_programme_type_2', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='abln', + name='referral_programme_type_3', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='abln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', 'Referred by CP partner'), ('Referred by youth partner', 'Referred by youth partner'), ('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO', 'Referral from another NGO'), ('Referral from another Municipality', 'Referral from Municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u0644\u062a\u0639\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='abln', + name='syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629\u0627\u0644\u0633\u0648\u0631\u064a\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', 'Pre-test \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='bln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='bln', + name='confirmation_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='bln', + name='confirmation_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='bln', + name='confirmation_date_3', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='bln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal educarioh but did not continue', 'Enrolled in formal educarioh but did not continue')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='bln', + name='followup_call_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062a\u0635\u0627\u0644'), + ), + migrations.AlterField( + model_name='bln', + name='followup_call_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062a\u0635\u0627\u0644'), + ), + migrations.AlterField( + model_name='bln', + name='followup_call_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='bln', + name='followup_call_reason_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='bln', + name='followup_call_result_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='followup_call_result_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='followup_visit_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0632\u064a\u0627\u0631\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='followup_visit_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='bln', + name='followup_visit_result_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='hh_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='\u0645\u0627 \u0647\u0648 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a \u0644\u0644\u0623\u0645\u061f'), + ), + migrations.AlterField( + model_name='bln', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0633\u0648\u0631\u064a\u0629'), ('Palestinian national ID', '\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0641\u0644\u0633\u0637\u0646\u064a\u0629'), ('Lebanese national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), ('Child have no ID', '\u0628\u062f\u0648\u0646 \u0627\u0648\u0631\u0627\u0642 ')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', ' \u062e\u062f\u0645\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u0629 (\u0641\u0646\u062f\u0642\u060c \u0645\u0637\u0639\u0645\u060c \u0646\u0642\u0644\u060c \u062e\u062f\u0645\u0627\u062a \u0634\u062e\u0635\u064a\u0629 \u0645\u062b\u0644 \u0627\u0644\u062a\u0646\u0638\u064a\u0641\u060c \u0627\u0644\u0639\u0646\u0627\u064a\u0629 \u0628\u0627\u0644\u0634\u0639\u0631\u060c \u0627\u0644\u0637\u0628\u062e \u0648\u0627\u0644\u0625\u0639\u062a\u0646\u0627\u0621 \u0628\u0627\u0644\u0623\u0637\u0641\u0627\u0644)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='bln', + name='language', + field=models.CharField(blank=True, choices=[('arabic', '\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629'), ('english_arabic', '\u0627\u0644\u0627\u0646\u0643\u0644\u064a\u0632\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629'), ('french_arabic', '\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629')], max_length=100, null=True, verbose_name='\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0645\u0639\u062a\u0645\u062f\u0629 \u0641\u064a \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='bln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('graduated_to_bln_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_public_school', '\u0627\u062d\u064a\u0644 \u0627\u0644\u0649 \u0645\u062f\u0631\u0633\u0629 \u0631\u0633\u0645\u064a\u0629'), ('referred_to_tvet', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c TVET'), ('referred_to_ybln', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c YBLN'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='bln', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u062a\u0623\u0643\u064a\u062f \u0631\u0642\u0645 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='other_nationality', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name=' \u062d\u062f\u062f \u0627\u0644\u062c\u0646\u0633\u064a\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0633\u0648\u0631\u064a\u0629'), ('Palestinian national ID', '\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0641\u0644\u0633\u0637\u0646\u064a\u0629'), ('Lebanese national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), ('Parent have no ID', '\u0628\u062f\u0648\u0646 \u0627\u0648\u0631\u0627\u0642')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 '), + ), + migrations.AlterField( + model_name='bln', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u062a\u0623\u0643\u064a\u062f \u0631\u0642\u0645 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='parent_syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629\u0627\u0644\u0633\u0648\u0631\u064a\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='participation', + field=models.CharField(blank=True, choices=[('less_than_10days', '\u0623\u0642\u0644 \u0645\u0646 10 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('10_15_days', '10-15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('15_20_days', '15-20 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_20days', '\u0623\u0643\u062b\u0631 \u0645\u0646 20 \u064a\u0648\u0645 \u063a\u064a\u0627\u0628')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='bln', + name='phone_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u062a\u0623\u0643\u064a\u062f \u0627\u0644\u0647\u0627\u062a\u0641'), + ), + migrations.AlterField( + model_name='bln', + name='referral_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='referral_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='referral_date_3', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='referral_programme_type_1', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='bln', + name='referral_programme_type_2', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='bln', + name='referral_programme_type_3', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='bln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', 'Referred by CP partner'), ('Referred by youth partner', 'Referred by youth partner'), ('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO', 'Referral from another NGO'), ('Referral from another Municipality', 'Referral from Municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u0644\u062a\u0639\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='bln', + name='syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629\u0627\u0644\u0633\u0648\u0631\u064a\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', 'Pre-test \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='cbece', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='cbece', + name='confirmation_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='cbece', + name='confirmation_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='cbece', + name='confirmation_date_3', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='cbece', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal educarioh but did not continue', 'Enrolled in formal educarioh but did not continue')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='cbece', + name='followup_call_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062a\u0635\u0627\u0644'), + ), + migrations.AlterField( + model_name='cbece', + name='followup_call_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062a\u0635\u0627\u0644'), + ), + migrations.AlterField( + model_name='cbece', + name='followup_call_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='cbece', + name='followup_call_reason_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='cbece', + name='followup_call_result_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='followup_call_result_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='followup_visit_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0632\u064a\u0627\u0631\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='followup_visit_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='cbece', + name='followup_visit_result_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='hh_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='\u0645\u0627 \u0647\u0648 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a \u0644\u0644\u0623\u0645\u061f'), + ), + migrations.AlterField( + model_name='cbece', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0633\u0648\u0631\u064a\u0629'), ('Palestinian national ID', '\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0641\u0644\u0633\u0637\u0646\u064a\u0629'), ('Lebanese national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), ('Child have no ID', '\u0628\u062f\u0648\u0646 \u0627\u0648\u0631\u0627\u0642 ')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', ' \u062e\u062f\u0645\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u0629 (\u0641\u0646\u062f\u0642\u060c \u0645\u0637\u0639\u0645\u060c \u0646\u0642\u0644\u060c \u062e\u062f\u0645\u0627\u062a \u0634\u062e\u0635\u064a\u0629 \u0645\u062b\u0644 \u0627\u0644\u062a\u0646\u0638\u064a\u0641\u060c \u0627\u0644\u0639\u0646\u0627\u064a\u0629 \u0628\u0627\u0644\u0634\u0639\u0631\u060c \u0627\u0644\u0637\u0628\u062e \u0648\u0627\u0644\u0625\u0639\u062a\u0646\u0627\u0621 \u0628\u0627\u0644\u0623\u0637\u0641\u0627\u0644)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='cbece', + name='language', + field=models.CharField(blank=True, choices=[('arabic', '\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629'), ('english_arabic', '\u0627\u0644\u0627\u0646\u0643\u0644\u064a\u0632\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629'), ('french_arabic', '\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629')], max_length=100, null=True, verbose_name='\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0645\u0639\u062a\u0645\u062f\u0629 \u0641\u064a \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='cbece', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u062a\u0623\u0643\u064a\u062f \u0631\u0642\u0645 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='other_nationality', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name=' \u062d\u062f\u062f \u0627\u0644\u062c\u0646\u0633\u064a\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0633\u0648\u0631\u064a\u0629'), ('Palestinian national ID', '\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0641\u0644\u0633\u0637\u0646\u064a\u0629'), ('Lebanese national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), ('Parent have no ID', '\u0628\u062f\u0648\u0646 \u0627\u0648\u0631\u0627\u0642')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 '), + ), + migrations.AlterField( + model_name='cbece', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u062a\u0623\u0643\u064a\u062f \u0631\u0642\u0645 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='parent_syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629\u0627\u0644\u0633\u0648\u0631\u064a\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='phone_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u062a\u0623\u0643\u064a\u062f \u0627\u0644\u0647\u0627\u062a\u0641'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_date_3', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_programme_type_1', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_programme_type_2', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_programme_type_3', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='cbece', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', 'Referred by CP partner'), ('Referred by youth partner', 'Referred by youth partner'), ('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO', 'Referral from another NGO'), ('Referral from another Municipality', 'Referral from Municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u0644\u062a\u0639\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='cbece', + name='syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629\u0627\u0644\u0633\u0648\u0631\u064a\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', 'Pre-test \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='rs', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='rs', + name='confirmation_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='rs', + name='confirmation_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='rs', + name='confirmation_date_3', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0630\u064a \u062a\u0624\u0643\u062f \u0641\u064a\u0647 \u0627\u0644\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u0629 \u0642\u0628\u0648\u0644 \u0627\u0644\u0637\u0641\u0644 \u0623\u0648 \u062e\u062f\u0645\u0629 \u062a\u0644\u0642\u064a \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='rs', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal educarioh but did not continue', 'Enrolled in formal educarioh but did not continue')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='rs', + name='followup_call_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062a\u0635\u0627\u0644'), + ), + migrations.AlterField( + model_name='rs', + name='followup_call_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062a\u0635\u0627\u0644'), + ), + migrations.AlterField( + model_name='rs', + name='followup_call_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='rs', + name='followup_call_reason_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='rs', + name='followup_call_result_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='followup_call_result_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='followup_visit_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0632\u064a\u0627\u0631\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='followup_visit_reason_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0633\u0628\u0628'), + ), + migrations.AlterField( + model_name='rs', + name='followup_visit_result_1', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0646\u062a\u064a\u062c\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='hh_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='\u0645\u0627 \u0647\u0648 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a \u0644\u0644\u0623\u0645\u061f'), + ), + migrations.AlterField( + model_name='rs', + name='id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0633\u0648\u0631\u064a\u0629'), ('Palestinian national ID', '\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0641\u0644\u0633\u0637\u0646\u064a\u0629'), ('Lebanese national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), ('Child have no ID', '\u0628\u062f\u0648\u0646 \u0627\u0648\u0631\u0627\u0642 ')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='labours', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('agriculture', '\u0627\u0644\u0632\u0631\u0627\u0639\u0629'), ('building', '\u0627\u0644\u0628\u0646\u0627\u0621'), ('manufacturing', '\u0627\u0644\u062a\u0635\u0646\u064a\u0639'), ('retail_store', '\u0627\u0644\u0628\u064a\u0639 \u0628\u0627\u0644\u0645\u0641\u0631\u0642 / \u0645\u062d\u0644'), ('begging', '\u062a\u0633\u0648\u0644'), ('other_many_other', ' \u062e\u062f\u0645\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u0629 (\u0641\u0646\u062f\u0642\u060c \u0645\u0637\u0639\u0645\u060c \u0646\u0642\u0644\u060c \u062e\u062f\u0645\u0627\u062a \u0634\u062e\u0635\u064a\u0629 \u0645\u062b\u0644 \u0627\u0644\u062a\u0646\u0638\u064a\u0641\u060c \u0627\u0644\u0639\u0646\u0627\u064a\u0629 \u0628\u0627\u0644\u0634\u0639\u0631\u060c \u0627\u0644\u0637\u0628\u062e \u0648\u0627\u0644\u0625\u0639\u062a\u0646\u0627\u0621 \u0628\u0627\u0644\u0623\u0637\u0641\u0627\u0644)')], max_length=50, null=True), blank=True, null=True, size=None, verbose_name='\u0645\u0627 \u0647\u0648 \u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644 \u061f'), + ), + migrations.AlterField( + model_name='rs', + name='language', + field=models.CharField(blank=True, choices=[('arabic', '\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629'), ('english_arabic', '\u0627\u0644\u0627\u0646\u0643\u0644\u064a\u0632\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629'), ('french_arabic', '\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629/\u0627\u0644\u0639\u0631\u0628\u064a\u0629')], max_length=100, null=True, verbose_name='\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0645\u0639\u062a\u0645\u062f\u0629 \u0641\u064a \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='rs', + name='national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u062a\u0623\u0643\u064a\u062f \u0631\u0642\u0645 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='other_nationality', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name=' \u062d\u062f\u062f \u0627\u0644\u062c\u0646\u0633\u064a\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='parent_id_type', + field=models.CharField(blank=True, choices=[('UNHCR Registered', 'UNHCR Registered'), ('UNHCR Recorded', 'UNHCR Recorded'), ('Syrian national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0633\u0648\u0631\u064a\u0629'), ('Palestinian national ID', '\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0641\u0644\u0633\u0637\u0646\u064a\u0629'), ('Lebanese national ID', '\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), ('Parent have no ID', '\u0628\u062f\u0648\u0646 \u0627\u0648\u0631\u0627\u0642')], max_length=100, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 '), + ), + migrations.AlterField( + model_name='rs', + name='parent_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='parent_national_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='\u062a\u0623\u0643\u064a\u062f \u0631\u0642\u0645 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0644\u0628\u0646\u0627\u0646\u064a\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='parent_syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629\u0627\u0644\u0633\u0648\u0631\u064a\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='phone_number_confirm', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u062a\u0623\u0643\u064a\u062f \u0627\u0644\u0647\u0627\u062a\u0641'), + ), + migrations.AlterField( + model_name='rs', + name='referral_date_1', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='referral_date_2', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='referral_date_3', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u062d\u0627\u0644\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='referral_programme_type_1', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='rs', + name='referral_programme_type_2', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='rs', + name='referral_programme_type_3', + field=models.CharField(blank=True, choices=[('Formal Education', 'Formal Education'), ('ALP', 'ALP'), ('BLN', 'BLN'), ('CP (PSS and/or Case Management)', 'CP (PSS and/or Case Management)'), ('Youth', 'Youth'), ('Health', 'Health'), ('WASH', 'WASH'), ('Specialized Services', 'Specialized Services'), ('Other', '\u0622\u062e\u0631')], max_length=100, null=True, verbose_name=' \u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c'), + ), + migrations.AlterField( + model_name='rs', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', 'Referred by CP partner'), ('Referred by youth partner', 'Referred by youth partner'), ('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO', 'Referral from another NGO'), ('Referral from another Municipality', 'Referral from Municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u0644\u062a\u0639\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='rs', + name='syrian_national_number', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name=' \u0631\u0642\u0645 \u0627\u0644\u0628\u0637\u0627\u0642\u0629\u0627\u0644\u0633\u0648\u0631\u064a\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', 'Pre-test \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + ] diff --git a/student_registration/clm/migrations/0070_auto_20190823_1449.py b/student_registration/clm/migrations/0070_auto_20190823_1449.py new file mode 100644 index 000000000..976c30c56 --- /dev/null +++ b/student_registration/clm/migrations/0070_auto_20190823_1449.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-08-23 11:49 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0069_auto_20190819_1002'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='caretaker_first_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker First Name'), + ), + migrations.AddField( + model_name='abln', + name='caretaker_last_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Last Name'), + ), + migrations.AddField( + model_name='abln', + name='caretaker_middle_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Middle Name'), + ), + migrations.AddField( + model_name='abln', + name='caretaker_mother_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Mother Name'), + ), + migrations.AddField( + model_name='bln', + name='caretaker_first_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker First Name'), + ), + migrations.AddField( + model_name='bln', + name='caretaker_last_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Last Name'), + ), + migrations.AddField( + model_name='bln', + name='caretaker_middle_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Middle Name'), + ), + migrations.AddField( + model_name='bln', + name='caretaker_mother_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Mother Name'), + ), + migrations.AddField( + model_name='cbece', + name='caretaker_first_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker First Name'), + ), + migrations.AddField( + model_name='cbece', + name='caretaker_last_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Last Name'), + ), + migrations.AddField( + model_name='cbece', + name='caretaker_middle_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Middle Name'), + ), + migrations.AddField( + model_name='cbece', + name='caretaker_mother_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Mother Name'), + ), + migrations.AddField( + model_name='rs', + name='caretaker_first_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker First Name'), + ), + migrations.AddField( + model_name='rs', + name='caretaker_last_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Last Name'), + ), + migrations.AddField( + model_name='rs', + name='caretaker_middle_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Middle Name'), + ), + migrations.AddField( + model_name='rs', + name='caretaker_mother_name', + field=models.CharField(max_length=500, null=True, verbose_name='Caretaker Mother Name'), + ), + migrations.AlterField( + model_name='abln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal education but did not continue', 'Enrolled in formal education but did not continue')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='abln', + name='father_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='\u0645\u0627 \u0647\u0648 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a \u0644\u0644\u0623\u0628\u061f'), + ), + migrations.AlterField( + model_name='abln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', 'Referred by CP partner'), ('Referred by youth partner', 'Referred by youth partner'), ('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', 'Referral from Municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u0644\u062a\u0639\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='bln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal education but did not continue', 'Enrolled in formal education but did not continue')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='bln', + name='father_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='\u0645\u0627 \u0647\u0648 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a \u0644\u0644\u0623\u0628\u061f'), + ), + migrations.AlterField( + model_name='bln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', 'Referred by CP partner'), ('Referred by youth partner', 'Referred by youth partner'), ('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', 'Referral from Municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u0644\u062a\u0639\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='cbece', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal education but did not continue', 'Enrolled in formal education but did not continue')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='cbece', + name='father_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='\u0645\u0627 \u0647\u0648 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a \u0644\u0644\u0623\u0628\u061f'), + ), + migrations.AlterField( + model_name='cbece', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', 'Referred by CP partner'), ('Referred by youth partner', 'Referred by youth partner'), ('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', 'Referral from Municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u0644\u062a\u0639\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='rs', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal education but did not continue', 'Enrolled in formal education but did not continue')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='rs', + name='father_educational_level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationalLevel', verbose_name='\u0645\u0627 \u0647\u0648 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a \u0644\u0644\u0623\u0628\u061f'), + ), + migrations.AlterField( + model_name='rs', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', 'Referred by CP partner'), ('Referred by youth partner', 'Referred by youth partner'), ('Family walked in to NGO', 'Family walked in to NGO'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', 'Referral from Municipality'), ('Direct outreach', 'Direct outreach'), ('List database', 'List database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u0644\u062a\u0639\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0637\u0641\u0644'), + ), + ] diff --git a/student_registration/clm/migrations/0071_auto_20190918_1810.py b/student_registration/clm/migrations/0071_auto_20190918_1810.py new file mode 100644 index 000000000..586c66815 --- /dev/null +++ b/student_registration/clm/migrations/0071_auto_20190918_1810.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-09-18 15:10 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0070_auto_20190823_1449'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal education but did not continue', 'Enrolled in formal education but did not continue'), ('enrolled in ABLN', 'Enrolled in ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='bln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal education but did not continue', 'Enrolled in formal education but did not continue'), ('enrolled in ABLN', 'Enrolled in ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='cbece', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal education but did not continue', 'Enrolled in formal education but did not continue'), ('enrolled in ABLN', 'Enrolled in ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='rs', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', 'Out of school'), ('enrolled in formal education but did not continue', 'Enrolled in formal education but did not continue'), ('enrolled in ABLN', 'Enrolled in ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + ] diff --git a/student_registration/clm/migrations/0072_auto_20190922_2321.py b/student_registration/clm/migrations/0072_auto_20190922_2321.py new file mode 100644 index 000000000..d5c3af449 --- /dev/null +++ b/student_registration/clm/migrations/0072_auto_20190922_2321.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-22 20:21 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0071_auto_20190918_1810'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', '\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0628\u062f\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0645\u0646 \u0642\u0628\u0644'), ('enrolled in formal education but did not continue', '\u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0648\u0644\u0645 \u064a\u0643\u0645\u0644'), ('enrolled in ABLN', ' \u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0628\u0631\u0646\u0627\u0645\u062c ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a \u0644\u0644\u0637\u0641\u0644 \u0639\u0646\u062f \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', ' \u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0641\u064a \u0628\u0631 \u0646\u0627\u0645\u062c \u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u0637\u0641\u0644 CP partner'), ('Referred by youth partner', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0634\u0628\u0627\u0628 \u0648\u0627\u0644\u0645\u0631\u0627\u0647\u0642\u064a\u0646'), ('Family walked in to NGO', '\u0645\u0646 \u0642\u0628\u0644 \u0627\u0647\u0644 \u0627\u0644\u0637\u0641\u0644'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0628\u0644\u062f\u064a\u0629'), ('Direct outreach', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u062d\u0645\u0644\u0627\u062a \u0627\u0644\u062a\u0648\u0639\u064a\u0629'), ('List database', ' \u0627\u062d\u0644\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 Profiling Database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0641\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ABLN'), + ), + migrations.AlterField( + model_name='abln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', ' \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644 Pre-test'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='bln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', '\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0628\u062f\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0645\u0646 \u0642\u0628\u0644'), ('enrolled in formal education but did not continue', '\u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0648\u0644\u0645 \u064a\u0643\u0645\u0644'), ('enrolled in ABLN', ' \u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0628\u0631\u0646\u0627\u0645\u062c ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a \u0644\u0644\u0637\u0641\u0644 \u0639\u0646\u062f \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', ' \u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0641\u064a \u0628\u0631 \u0646\u0627\u0645\u062c \u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u0637\u0641\u0644 CP partner'), ('Referred by youth partner', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0634\u0628\u0627\u0628 \u0648\u0627\u0644\u0645\u0631\u0627\u0647\u0642\u064a\u0646'), ('Family walked in to NGO', '\u0645\u0646 \u0642\u0628\u0644 \u0627\u0647\u0644 \u0627\u0644\u0637\u0641\u0644'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0628\u0644\u062f\u064a\u0629'), ('Direct outreach', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u062d\u0645\u0644\u0627\u062a \u0627\u0644\u062a\u0648\u0639\u064a\u0629'), ('List database', ' \u0627\u062d\u0644\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 Profiling Database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0641\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ABLN'), + ), + migrations.AlterField( + model_name='bln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', ' \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644 Pre-test'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='cbece', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', '\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0628\u062f\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0645\u0646 \u0642\u0628\u0644'), ('enrolled in formal education but did not continue', '\u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0648\u0644\u0645 \u064a\u0643\u0645\u0644'), ('enrolled in ABLN', ' \u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0628\u0631\u0646\u0627\u0645\u062c ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a \u0644\u0644\u0637\u0641\u0644 \u0639\u0646\u062f \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', ' \u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0641\u064a \u0628\u0631 \u0646\u0627\u0645\u062c \u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u0637\u0641\u0644 CP partner'), ('Referred by youth partner', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0634\u0628\u0627\u0628 \u0648\u0627\u0644\u0645\u0631\u0627\u0647\u0642\u064a\u0646'), ('Family walked in to NGO', '\u0645\u0646 \u0642\u0628\u0644 \u0627\u0647\u0644 \u0627\u0644\u0637\u0641\u0644'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0628\u0644\u062f\u064a\u0629'), ('Direct outreach', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u062d\u0645\u0644\u0627\u062a \u0627\u0644\u062a\u0648\u0639\u064a\u0629'), ('List database', ' \u0627\u062d\u0644\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 Profiling Database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0641\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ABLN'), + ), + migrations.AlterField( + model_name='cbece', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', ' \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644 Pre-test'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='rs', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', '\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0628\u062f\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0645\u0646 \u0642\u0628\u0644'), ('enrolled in formal education but did not continue', '\u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0648\u0644\u0645 \u064a\u0643\u0645\u0644'), ('enrolled in ABLN', ' \u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0628\u0631\u0646\u0627\u0645\u062c ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a \u0644\u0644\u0637\u0641\u0644 \u0639\u0646\u062f \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', ' \u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0641\u064a \u0628\u0631 \u0646\u0627\u0645\u062c \u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u0637\u0641\u0644 CP partner'), ('Referred by youth partner', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0634\u0628\u0627\u0628 \u0648\u0627\u0644\u0645\u0631\u0627\u0647\u0642\u064a\u0646'), ('Family walked in to NGO', '\u0645\u0646 \u0642\u0628\u0644 \u0627\u0647\u0644 \u0627\u0644\u0637\u0641\u0644'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0628\u0644\u062f\u064a\u0629'), ('Direct outreach', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u062d\u0645\u0644\u0627\u062a \u0627\u0644\u062a\u0648\u0639\u064a\u0629'), ('List database', ' \u0627\u062d\u0644\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 Profiling Database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0641\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ABLN'), + ), + migrations.AlterField( + model_name='rs', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', ' \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644 Pre-test'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + ] diff --git a/student_registration/clm/migrations/0072_auto_20190930_1647.py b/student_registration/clm/migrations/0072_auto_20190930_1647.py new file mode 100644 index 000000000..f18df74a2 --- /dev/null +++ b/student_registration/clm/migrations/0072_auto_20190930_1647.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-09-30 13:47 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0071_auto_20190918_1810'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', '\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0628\u062f\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0645\u0646 \u0642\u0628\u0644'), ('enrolled in formal education but did not continue', '\u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0648\u0644\u0645 \u064a\u0643\u0645\u0644'), ('enrolled in ABLN', ' \u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0628\u0631\u0646\u0627\u0645\u062c ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a \u0644\u0644\u0637\u0641\u0644 \u0639\u0646\u062f \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('graduated_to_abln_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('graduated_to_abln_next_round_same_level', 'Graduated to the next round, same level'), ('graduated_to_abln_next_round_higher_level', 'Graduated to the next round, higher level'), ('referred_to_bln', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c BLN'), ('referred_to_ybln', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c YBLN'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_to_cbt', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c CBT'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='abln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', ' \u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0641\u064a \u0628\u0631 \u0646\u0627\u0645\u062c \u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u0637\u0641\u0644 CP partner'), ('Referred by youth partner', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0634\u0628\u0627\u0628 \u0648\u0627\u0644\u0645\u0631\u0627\u0647\u0642\u064a\u0646'), ('Family walked in to NGO', '\u0645\u0646 \u0642\u0628\u0644 \u0627\u0647\u0644 \u0627\u0644\u0637\u0641\u0644'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0628\u0644\u062f\u064a\u0629'), ('Direct outreach', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u062d\u0645\u0644\u0627\u062a \u0627\u0644\u062a\u0648\u0639\u064a\u0629'), ('List database', ' \u0627\u062d\u0644\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 Profiling Database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0641\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ABLN'), + ), + migrations.AlterField( + model_name='abln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', ' \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644 Pre-test'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='bln', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', '\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0628\u062f\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0645\u0646 \u0642\u0628\u0644'), ('enrolled in formal education but did not continue', '\u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0648\u0644\u0645 \u064a\u0643\u0645\u0644'), ('enrolled in ABLN', ' \u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0628\u0631\u0646\u0627\u0645\u062c ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a \u0644\u0644\u0637\u0641\u0644 \u0639\u0646\u062f \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('graduated_to_bln_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('graduated_to_bln_next_round_same_level', 'Graduated to the next round, same level'), ('graduated_to_bln_next_round_higher_level', 'Graduated to the next round, higher level'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_public_school', '\u0627\u062d\u064a\u0644 \u0627\u0644\u0649 \u0645\u062f\u0631\u0633\u0629 \u0631\u0633\u0645\u064a\u0629'), ('referred_to_tvet', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c TVET'), ('referred_to_ybln', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c YBLN'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='bln', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', ' \u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0641\u064a \u0628\u0631 \u0646\u0627\u0645\u062c \u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u0637\u0641\u0644 CP partner'), ('Referred by youth partner', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0634\u0628\u0627\u0628 \u0648\u0627\u0644\u0645\u0631\u0627\u0647\u0642\u064a\u0646'), ('Family walked in to NGO', '\u0645\u0646 \u0642\u0628\u0644 \u0627\u0647\u0644 \u0627\u0644\u0637\u0641\u0644'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0628\u0644\u062f\u064a\u0629'), ('Direct outreach', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u062d\u0645\u0644\u0627\u062a \u0627\u0644\u062a\u0648\u0639\u064a\u0629'), ('List database', ' \u0627\u062d\u0644\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 Profiling Database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0641\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ABLN'), + ), + migrations.AlterField( + model_name='bln', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', ' \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644 Pre-test'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='cbece', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', '\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0628\u062f\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0645\u0646 \u0642\u0628\u0644'), ('enrolled in formal education but did not continue', '\u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0648\u0644\u0645 \u064a\u0643\u0645\u0644'), ('enrolled in ABLN', ' \u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0628\u0631\u0646\u0627\u0645\u062c ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a \u0644\u0644\u0637\u0641\u0644 \u0639\u0646\u062f \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', ' \u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0641\u064a \u0628\u0631 \u0646\u0627\u0645\u062c \u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u0637\u0641\u0644 CP partner'), ('Referred by youth partner', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0634\u0628\u0627\u0628 \u0648\u0627\u0644\u0645\u0631\u0627\u0647\u0642\u064a\u0646'), ('Family walked in to NGO', '\u0645\u0646 \u0642\u0628\u0644 \u0627\u0647\u0644 \u0627\u0644\u0637\u0641\u0644'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0628\u0644\u062f\u064a\u0629'), ('Direct outreach', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u062d\u0645\u0644\u0627\u062a \u0627\u0644\u062a\u0648\u0639\u064a\u0629'), ('List database', ' \u0627\u062d\u0644\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 Profiling Database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0641\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ABLN'), + ), + migrations.AlterField( + model_name='cbece', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', ' \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644 Pre-test'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + migrations.AlterField( + model_name='rs', + name='education_status', + field=models.CharField(blank=True, choices=[('out of school', '\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0628\u062f\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0645\u0646 \u0642\u0628\u0644'), ('enrolled in formal education but did not continue', '\u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629 \u0648\u0644\u0645 \u064a\u0643\u0645\u0644'), ('enrolled in ABLN', ' \u0643\u0627\u0646 \u0645\u0633\u062c\u0644\u0627 \u0641\u064a \u0628\u0631\u0646\u0627\u0645\u062c ABLN')], max_length=100, null=True, verbose_name='\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0631\u0627\u0633\u064a \u0644\u0644\u0637\u0641\u0644 \u0639\u0646\u062f \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='source_of_identification', + field=models.CharField(blank=True, choices=[('Referred by CP partner', ' \u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0641\u064a \u0628\u0631 \u0646\u0627\u0645\u062c \u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u0637\u0641\u0644 CP partner'), ('Referred by youth partner', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0634\u0631\u0643\u0627\u0621 \u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0634\u0628\u0627\u0628 \u0648\u0627\u0644\u0645\u0631\u0627\u0647\u0642\u064a\u0646'), ('Family walked in to NGO', '\u0645\u0646 \u0642\u0628\u0644 \u0627\u0647\u0644 \u0627\u0644\u0637\u0641\u0644'), ('Referral from another NGO', '\u0625\u062d\u0627\u0644\u0629 \u0645\u0646 \u063a\u064a\u0631 \u062c\u0645\u0639\u064a\u0629'), ('Referral from another Municipality', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0628\u0644\u062f\u064a\u0629'), ('Direct outreach', '\u0627\u062d\u0627\u0644\u0629 \u0645\u0646 \u0642\u0628\u0644 \u062d\u0645\u0644\u0627\u062a \u0627\u0644\u062a\u0648\u0639\u064a\u0629'), ('List database', ' \u0627\u062d\u0644\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 Profiling Database')], max_length=100, null=True, verbose_name='\u0645\u0635\u062f\u0631 \u0627\u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0641\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ABLN'), + ), + migrations.AlterField( + model_name='rs', + name='unsuccessful_pretest_reason', + field=models.CharField(blank=True, choices=[('disability', '\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u062e\u0627\u0635\u0629'), ('enrolled and did not do the pre-test', ' \u0645\u0633\u062c\u0644 \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u0642\u0645 \u0628\u0627\u0644 Pre-test'), ('enrolled in formal', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a')], max_length=100, null=True, verbose_name='\u0627\u0633\u0628\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u0627\u0644 Pre-test'), + ), + ] diff --git a/student_registration/clm/migrations/0073_auto_20191001_1015.py b/student_registration/clm/migrations/0073_auto_20191001_1015.py new file mode 100644 index 000000000..49fc34046 --- /dev/null +++ b/student_registration/clm/migrations/0073_auto_20191001_1015.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-10-01 07:15 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0072_auto_20190930_1647'), + ] + + operations = [ + migrations.AddField( + model_name='abln', + name='cycle_completed', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='abln', + name='enrolled_at_school', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='bln', + name='cycle_completed', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='bln', + name='enrolled_at_school', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='cbece', + name='cycle_completed', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='cbece', + name='enrolled_at_school', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='rs', + name='cycle_completed', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='rs', + name='enrolled_at_school', + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name='abln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('graduated_to_abln_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('graduated_to_abln_next_round_same_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062c\u0648\u0644\u0629 \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u060c \u0646\u0641\u0633 \u0627\u0644\u0645\u0633\u062a\u0648\u0649'), ('graduated_to_abln_next_round_higher_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062c\u0648\u0644\u0629 \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u060c \u0645\u0633\u062a\u0648\u0649 \u0623\u0639\u0644\u0649'), ('referred_to_bln', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c BLN'), ('referred_to_ybln', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c YBLN'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_to_cbt', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c CBT'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + migrations.AlterField( + model_name='bln', + name='learning_result', + field=models.CharField(blank=True, choices=[('', ' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), ('graduated_to_bln_next_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a'), ('graduated_to_bln_next_round_same_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062c\u0648\u0644\u0629 \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u060c \u0646\u0641\u0633 \u0627\u0644\u0645\u0633\u062a\u0648\u0649'), ('graduated_to_bln_next_round_higher_level', '\u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u062c\u0648\u0644\u0629 \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u060c \u0645\u0633\u062a\u0648\u0649 \u0623\u0639\u0644\u0649'), ('referred_to_alp', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c ALP'), ('referred_public_school', '\u0627\u062d\u064a\u0644 \u0627\u0644\u0649 \u0645\u062f\u0631\u0633\u0629 \u0631\u0633\u0645\u064a\u0629'), ('referred_to_tvet', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c TVET'), ('referred_to_ybln', '\u0623\u062d\u064a\u0644 \u0625\u0644\u0649 \u0628\u0631\u0646\u0627\u0645\u062c YBLN'), ('dropout', '\u062a\u0633\u0631\u0628 \u0645\u0646 \u0627\u0644\u062f\u0648\u0631\u0629\u060c \u0627\u062d\u0627\u0644\u0629 \u063a\u064a\u0631 \u0645\u0645\u0643\u0646\u0629')], max_length=100, null=True, verbose_name=' \u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645'), + ), + ] diff --git a/student_registration/clm/migrations/0074_merge_20191008_1034.py b/student_registration/clm/migrations/0074_merge_20191008_1034.py new file mode 100644 index 000000000..50f04fc9e --- /dev/null +++ b/student_registration/clm/migrations/0074_merge_20191008_1034.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-10-08 07:34 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0073_auto_20191001_1015'), + ('clm', '0072_auto_20190922_2321'), + ] + + operations = [ + ] diff --git a/student_registration/clm/migrations/0075_auto_20191008_1151.py b/student_registration/clm/migrations/0075_auto_20191008_1151.py new file mode 100644 index 000000000..0d61969d8 --- /dev/null +++ b/student_registration/clm/migrations/0075_auto_20191008_1151.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-10-08 08:51 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0074_merge_20191008_1034'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='cycle_completed', + field=models.BooleanField(default=False, verbose_name='\u0627\u0646\u0642\u0631 \u062e\u0627\u0646\u0629 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0625\u0630\u0627 \u062a\u0645 \u0627\u0643\u0645\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0628\u0646\u062c\u0627\u062d'), + ), + migrations.AlterField( + model_name='abln', + name='enrolled_at_school', + field=models.BooleanField(default=False, verbose_name='\u0627\u0646\u0642\u0631 \u062e\u0627\u0646\u0629 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0625\u0630\u0627 \u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='cycle_completed', + field=models.BooleanField(default=False, verbose_name='\u0627\u0646\u0642\u0631 \u062e\u0627\u0646\u0629 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0625\u0630\u0627 \u062a\u0645 \u0627\u0643\u0645\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0628\u0646\u062c\u0627\u062d'), + ), + migrations.AlterField( + model_name='bln', + name='enrolled_at_school', + field=models.BooleanField(default=False, verbose_name='\u0627\u0646\u0642\u0631 \u062e\u0627\u0646\u0629 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0625\u0630\u0627 \u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='cycle_completed', + field=models.BooleanField(default=False, verbose_name='\u0627\u0646\u0642\u0631 \u062e\u0627\u0646\u0629 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0625\u0630\u0627 \u062a\u0645 \u0627\u0643\u0645\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0628\u0646\u062c\u0627\u062d'), + ), + migrations.AlterField( + model_name='cbece', + name='enrolled_at_school', + field=models.BooleanField(default=False, verbose_name='\u0627\u0646\u0642\u0631 \u062e\u0627\u0646\u0629 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0625\u0630\u0627 \u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='cycle_completed', + field=models.BooleanField(default=False, verbose_name='\u0627\u0646\u0642\u0631 \u062e\u0627\u0646\u0629 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0625\u0630\u0627 \u062a\u0645 \u0627\u0643\u0645\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0628\u0646\u062c\u0627\u062d'), + ), + migrations.AlterField( + model_name='rs', + name='enrolled_at_school', + field=models.BooleanField(default=False, verbose_name='\u0627\u0646\u0642\u0631 \u062e\u0627\u0646\u0629 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0625\u0630\u0627 \u062a\u0645 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0641\u064a \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + ] diff --git a/student_registration/clm/migrations/0076_auto_20191114_1123.py b/student_registration/clm/migrations/0076_auto_20191114_1123.py new file mode 100644 index 000000000..24e956742 --- /dev/null +++ b/student_registration/clm/migrations/0076_auto_20191114_1123.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-14 09:23 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0075_auto_20191008_1151'), + ] + + operations = [ + migrations.AlterModelOptions( + name='abln', + options={'ordering': ['-id'], 'verbose_name': 'ABLN', 'verbose_name_plural': 'ABLN'}, + ), + migrations.AlterModelOptions( + name='bln', + options={'ordering': ['-id'], 'verbose_name': 'BLN', 'verbose_name_plural': 'BLN'}, + ), + migrations.AlterModelOptions( + name='cbece', + options={'ordering': ['-id'], 'verbose_name': 'CB-ECE', 'verbose_name_plural': 'CB-ECE'}, + ), + migrations.AlterModelOptions( + name='rs', + options={'ordering': ['-id'], 'verbose_name': 'RS', 'verbose_name_plural': 'RS'}, + ), + ] diff --git a/student_registration/clm/migrations/0076_auto_20191115_1532.py b/student_registration/clm/migrations/0076_auto_20191115_1532.py new file mode 100644 index 000000000..87e9ae909 --- /dev/null +++ b/student_registration/clm/migrations/0076_auto_20191115_1532.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-15 13:32 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0075_auto_20191008_1151'), + ] + + operations = [ + migrations.AlterModelOptions( + name='abln', + options={'ordering': ['-id'], 'verbose_name': 'ABLN', 'verbose_name_plural': 'ABLN'}, + ), + migrations.AlterModelOptions( + name='bln', + options={'ordering': ['-id'], 'verbose_name': 'BLN', 'verbose_name_plural': 'BLN'}, + ), + migrations.AlterModelOptions( + name='cbece', + options={'ordering': ['-id'], 'verbose_name': 'CB-ECE', 'verbose_name_plural': 'CB-ECE'}, + ), + migrations.AlterModelOptions( + name='rs', + options={'ordering': ['-id'], 'verbose_name': 'RS', 'verbose_name_plural': 'RS'}, + ), + migrations.AddField( + model_name='abln', + name='first_attendance_date', + field=models.DateField(blank=True, null=True, verbose_name='First attendance date'), + ), + migrations.AddField( + model_name='bln', + name='first_attendance_date', + field=models.DateField(blank=True, null=True, verbose_name='First attendance date'), + ), + migrations.AddField( + model_name='cbece', + name='first_attendance_date', + field=models.DateField(blank=True, null=True, verbose_name='First attendance date'), + ), + migrations.AddField( + model_name='rs', + name='first_attendance_date', + field=models.DateField(blank=True, null=True, verbose_name='First attendance date'), + ), + ] diff --git a/student_registration/clm/migrations/0077_merge_20191126_2301.py b/student_registration/clm/migrations/0077_merge_20191126_2301.py new file mode 100644 index 000000000..4e901839f --- /dev/null +++ b/student_registration/clm/migrations/0077_merge_20191126_2301.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-26 21:01 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0076_auto_20191114_1123'), + ('clm', '0076_auto_20191115_1532'), + ] + + operations = [ + ] diff --git a/student_registration/clm/migrations/0078_auto_20191217_1438.py b/student_registration/clm/migrations/0078_auto_20191217_1438.py new file mode 100644 index 000000000..c9715964e --- /dev/null +++ b/student_registration/clm/migrations/0078_auto_20191217_1438.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-17 12:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0077_merge_20191126_2301'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='caretaker_first_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0623\u0648\u0644 \u0644\u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='abln', + name='caretaker_last_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0634\u0647\u0631\u0629 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='abln', + name='caretaker_middle_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0633\u0645 \u0627\u0644\u0623\u0628 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='abln', + name='caretaker_mother_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0633\u0645 \u0623\u0645 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='abln', + name='first_attendance_date', + field=models.DateField(blank=True, null=True, verbose_name='\u0623\u0648\u0644 \u062a\u0627\u0631\u064a\u062e \u062d\u0636\u0648\u0631 \u0627\u0644\u0637\u0641\u0644 \u0641\u064a \u0644\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='round', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.CLMRound', verbose_name='\u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='caretaker_first_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0623\u0648\u0644 \u0644\u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='bln', + name='caretaker_last_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0634\u0647\u0631\u0629 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='bln', + name='caretaker_middle_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0633\u0645 \u0627\u0644\u0623\u0628 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='bln', + name='caretaker_mother_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0633\u0645 \u0623\u0645 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='bln', + name='first_attendance_date', + field=models.DateField(blank=True, null=True, verbose_name='\u0623\u0648\u0644 \u062a\u0627\u0631\u064a\u062e \u062d\u0636\u0648\u0631 \u0627\u0644\u0637\u0641\u0644 \u0641\u064a \u0644\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='round', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.CLMRound', verbose_name='\u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='caretaker_first_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0623\u0648\u0644 \u0644\u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='cbece', + name='caretaker_last_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0634\u0647\u0631\u0629 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='cbece', + name='caretaker_middle_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0633\u0645 \u0627\u0644\u0623\u0628 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='cbece', + name='caretaker_mother_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0633\u0645 \u0623\u0645 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='cbece', + name='first_attendance_date', + field=models.DateField(blank=True, null=True, verbose_name='\u0623\u0648\u0644 \u062a\u0627\u0631\u064a\u062e \u062d\u0636\u0648\u0631 \u0627\u0644\u0637\u0641\u0644 \u0641\u064a \u0644\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='round', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.CLMRound', verbose_name='\u0627\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='caretaker_first_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0623\u0648\u0644 \u0644\u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='rs', + name='caretaker_last_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0634\u0647\u0631\u0629 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='rs', + name='caretaker_middle_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0633\u0645 \u0627\u0644\u0623\u0628 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='rs', + name='caretaker_mother_name', + field=models.CharField(max_length=500, null=True, verbose_name='\u0627\u0633\u0645 \u0623\u0645 \u0648\u0644\u064a \u0627\u0644\u0623\u0645\u0631'), + ), + migrations.AlterField( + model_name='rs', + name='first_attendance_date', + field=models.DateField(blank=True, null=True, verbose_name='\u0623\u0648\u0644 \u062a\u0627\u0631\u064a\u062e \u062d\u0636\u0648\u0631 \u0627\u0644\u0637\u0641\u0644 \u0641\u064a \u0644\u0644\u062f\u0648\u0631\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='round', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.CLMRound', verbose_name='\u0627\u0644\u062f\u0648\u0631\u0629'), + ), + ] diff --git a/student_registration/clm/migrations/0079_disability_name_en.py b/student_registration/clm/migrations/0079_disability_name_en.py new file mode 100644 index 000000000..ff9cbc6f1 --- /dev/null +++ b/student_registration/clm/migrations/0079_disability_name_en.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-12-19 11:12 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0078_auto_20191217_1438'), + ] + + operations = [ + migrations.AddField( + model_name='disability', + name='name_en', + field=models.CharField(blank=True, max_length=145, null=True), + ), + ] diff --git a/student_registration/clm/migrations/0080_auto_20200115_2324.py b/student_registration/clm/migrations/0080_auto_20200115_2324.py new file mode 100644 index 000000000..3306fc29b --- /dev/null +++ b/student_registration/clm/migrations/0080_auto_20200115_2324.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2020-01-15 21:24 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0079_disability_name_en'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629'), ('No barriers', 'No barriers')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='bln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629'), ('No barriers', 'No barriers')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='cbece', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629'), ('No barriers', 'No barriers')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='rs', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629'), ('No barriers', 'No barriers')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + ] diff --git a/student_registration/clm/migrations/0081_auto_20200121_0022.py b/student_registration/clm/migrations/0081_auto_20200121_0022.py new file mode 100644 index 000000000..381c386b8 --- /dev/null +++ b/student_registration/clm/migrations/0081_auto_20200121_0022.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2020-01-20 22:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0080_auto_20200115_2324'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='participation', + field=models.CharField(blank=True, choices=[('less_than_3days', '\u0623\u0642\u0644 \u0645\u0646 3 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('3_7_days', '3-7 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('7_12_days', '7-12 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_12days', '\u0623\u0643\u062b\u0631 \u0645\u0646 12 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('no_absence', 'No Absence')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='bln', + name='participation', + field=models.CharField(blank=True, choices=[('less_than_10days', '\u0623\u0642\u0644 \u0645\u0646 10 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('10_15_days', '10-15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('15_20_days', '15-20 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_20days', '\u0623\u0643\u062b\u0631 \u0645\u0646 20 \u064a\u0648\u0645 \u063a\u064a\u0627\u0628'), ('no_absence', 'No Absence')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='cbece', + name='participation', + field=models.CharField(blank=True, choices=[('', '\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), ('less_than_5days', '\u0623\u0642\u0644 \u0645\u0646 5 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('5_10_days', '5-10 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('10_15_days', '10-15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_15days', '\u0623\u0643\u062b\u0631 \u0645\u0646 15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('no_absence', 'No Absence')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='rs', + name='participation', + field=models.CharField(blank=True, choices=[('', '\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), ('less_than_5days', '\u0623\u0642\u0644 \u0645\u0646 5 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('5_10_days', '5-10 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('10_15_days', '10-15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_15days', '\u0623\u0643\u062b\u0631 \u0645\u0646 15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('no_absence', 'No Absence')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + ] diff --git a/student_registration/clm/migrations/0082_auto_20200130_1910.py b/student_registration/clm/migrations/0082_auto_20200130_1910.py new file mode 100644 index 000000000..1bf8cda2e --- /dev/null +++ b/student_registration/clm/migrations/0082_auto_20200130_1910.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-30 17:10 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0081_auto_20200121_0022'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='abln', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='abln', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='bln', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='bln', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='bln', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='rs', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='rs', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + migrations.AlterField( + model_name='rs', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='School / Center'), + ), + ] diff --git a/student_registration/clm/migrations/0083_auto_20200216_1831.py b/student_registration/clm/migrations/0083_auto_20200216_1831.py new file mode 100644 index 000000000..51827d553 --- /dev/null +++ b/student_registration/clm/migrations/0083_auto_20200216_1831.py @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-02-16 16:31 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clm', '0082_auto_20200130_1910'), + ] + + operations = [ + migrations.AlterField( + model_name='abln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629'), ('No barriers', '\u0644\u0627 \u064a\u0648\u062c\u062f')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='abln', + name='participation', + field=models.CharField(blank=True, choices=[('less_than_3days', '\u0623\u0642\u0644 \u0645\u0646 3 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('3_7_days', '3-7 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('7_12_days', '7-12 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_12days', '\u0623\u0643\u062b\u0631 \u0645\u0646 12 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('no_absence', '\u0644\u0627 \u063a\u064a\u0627\u0628')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='abln', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='abln', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629'), ('No barriers', '\u0644\u0627 \u064a\u0648\u062c\u062f')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='bln', + name='participation', + field=models.CharField(blank=True, choices=[('less_than_10days', '\u0623\u0642\u0644 \u0645\u0646 10 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('10_15_days', '10-15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('15_20_days', '15-20 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_20days', '\u0623\u0643\u062b\u0631 \u0645\u0646 20 \u064a\u0648\u0645 \u063a\u064a\u0627\u0628'), ('no_absence', '\u0644\u0627 \u063a\u064a\u0627\u0628')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='bln', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='bln', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629'), ('No barriers', '\u0644\u0627 \u064a\u0648\u062c\u062f')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='cbece', + name='participation', + field=models.CharField(blank=True, choices=[('', '\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), ('less_than_5days', '\u0623\u0642\u0644 \u0645\u0646 5 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('5_10_days', '5-10 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('10_15_days', '10-15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_15days', '\u0623\u0643\u062b\u0631 \u0645\u0646 15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('no_absence', '\u0644\u0627 \u063a\u064a\u0627\u0628')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='cbece', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='cbece', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='barriers', + field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('Full time job to support family financially', '\u0627\u0644\u0639\u0645\u0644 \u0644\u0625\u0639\u0627\u0644\u0629 \u0627\u0644\u0639\u0627\u0626\u0644\u0629 \u0645\u0627\u062f\u064a\u0627\u064b'), ('seasonal_work', '\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0645\u0648\u0633\u0645\u064a'), ('transportation', '\u0627\u0644\u0646\u0642\u0644\u064a\u0627\u062a '), ('weather', '\u0627\u0644\u0637\u0642\u0633'), ('sickness', '\u0627\u0644\u0645\u0631\u0636'), ('security', '\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0645\u0646\u064a'), ('family moved', '\u062a\u0628\u062f\u064a\u0644 \u0645\u0643\u0627\u0646 \u0627\u0644\u0633\u0643\u0646'), ('Moved back to Syria', '\u0627\u0646\u062a\u0642\u0644 \u0627\u0644\u0649 \u0633\u0648\u0631\u064a\u0627'), ('Enrolled in formal education', '\u0645\u0633\u062c\u0644 \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0627\u0633\u0627\u0633\u064a'), ('marriage engagement pregnancy', '\u0632\u0648\u0627\u062c/\u062e\u0637\u0648\u0628\u0629/\u062d\u0645\u0644'), ('violence bullying', ' \u062a\u0646\u0645\u0631/\u0639\u0646\u0641 - \u062e\u0644\u0627\u0644 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0648 \u0639\u0644\u0649 \u0637\u0631\u064a\u0642\u0647 \u0627\u0644\u0649 \u0627\u0644\u0645\u0631\u0643\u0632 '), ('No interest in pursuing the programme/No value', '\u0639\u062f\u0645 \u0627\u0644\u0631\u063a\u0628\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u0645/ \u0644\u0627 \u0642\u064a\u0645\u0629'), ('No barriers', '\u0644\u0627 \u064a\u0648\u062c\u062f')], max_length=100, null=True), blank=True, null=True, size=None, verbose_name='\u0627\u0644\u062d\u0648\u0627\u062c\u0632'), + ), + migrations.AlterField( + model_name='rs', + name='participation', + field=models.CharField(blank=True, choices=[('', '\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), ('less_than_5days', '\u0623\u0642\u0644 \u0645\u0646 5 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('5_10_days', '5-10 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('10_15_days', '10-15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('more_than_15days', '\u0623\u0643\u062b\u0631 \u0645\u0646 15 \u0623\u064a\u0627\u0645 \u063a\u064a\u0627\u0628'), ('no_absence', '\u0644\u0627 \u063a\u064a\u0627\u0628')], max_length=100, null=True, verbose_name='\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 '), + ), + migrations.AlterField( + model_name='rs', + name='referral_partner_1', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='referral_partner_2', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='rs', + name='referral_partner_3', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + ] diff --git a/student_registration/clm/models.py b/student_registration/clm/models.py index 667aaa535..88b101d43 100644 --- a/student_registration/clm/models.py +++ b/student_registration/clm/models.py @@ -105,6 +105,8 @@ def __unicode__(self): class Disability(models.Model): name = models.CharField(max_length=100) + name_en = models.CharField(max_length=145, blank=True, null=True) + active = models.BooleanField(default=True) class Meta: ordering = ['name'] @@ -118,6 +120,7 @@ def __unicode__(self): class CLM(TimeStampedModel): LANGUAGES = Choices( + ('arabic', _('Arabic')), ('english_arabic', _('English/Arabic')), ('french_arabic', _('French/Arabic')) ) @@ -142,20 +145,29 @@ class CLM(TimeStampedModel): ('less_than_5days', _('Less than 5 absence days')), ('5_10_days', _('5 to 10 absence days')), ('10_15_days', _('10 to 15 absence days')), - ('more_than_15days', _('More than 15 absence days')) + ('more_than_15days', _('More than 15 absence days')), + ('no_absence', _('No Absence')) ) BARRIERS = Choices( + ('Full time job to support family financially', _('Full time job to support family financially')), ('seasonal_work', _('Seasonal work')), ('transportation', _('Transportation')), ('weather', _('Weather')), ('sickness', _('Sickness')), ('security', _('Security')), - ('other', _('Other')) + ('family moved', _('Family moved')), + ('Moved back to Syria', _('Moved back to Syria')), + ('Enrolled in formal education', _('Enrolled in formal education')), + ('marriage engagement pregnancy', _('Marriage/Engagement/Pregnancy')), + ('violence bullying', _('Violence/Bullying')), + ('No interest in pursuing the programme/No value', _('No interest in pursuing the programme/No value')), + ('No barriers', _('No barriers')) ) HAVE_LABOUR = Choices( ('no', _('No')), ('yes_morning', _('Yes - Morning')), ('yes_afternoon', _('Yes - Afternoon')), + ('yes_all_day', _('Yes - All day')), ) LABOURS = Choices( ('agriculture', _('Agriculture')), @@ -163,18 +175,26 @@ class CLM(TimeStampedModel): ('manufacturing', _('Manufacturing')), ('retail_store', _('Retail / Store')), ('begging', _('Begging')), - ('other_many_other', _('Other (hotel, restaurant, transport, personal services such as cleaning, hair care, cooking and childcare)')), - ('other', _('Other')), + ('other_many_other', _('Other services (hotel, restaurant, transport, personal services such as cleaning, hair care, cooking and childcare)')), + # ('other', _('Other')), ) LEARNING_RESULT = Choices( ('', _('Learning result')), ('graduated_next_level', _('Graduated to the next level')), + ('graduated_next_round_same_level', _('Graduated to the next round, same level')), + ('graduated_next_round_higher_level', _('Graduated to the next round, higher level')), ('graduated_to_formal_kg', _('Graduated to formal education - KG')), ('graduated_to_formal_level1', _('Graduated to formal education - Level 1')), ('referred_to_another_program', _('Referred to another program')), # ('dropout', _('Dropout from school')) ) + first_attendance_date = models.DateField( + blank=True, + null=True, + verbose_name=_('First attendance date') + ) + round = models.ForeignKey( CLMRound, blank=True, null=True, @@ -250,7 +270,14 @@ class CLM(TimeStampedModel): EducationalLevel, blank=True, null=True, related_name='+', - verbose_name=_('What is the educational level of a person who is valuable to the child?') + verbose_name=_('What is the educational level of the mother?') + ) + + father_educational_level = models.ForeignKey( + EducationalLevel, + blank=True, null=True, + related_name='+', + verbose_name=_('What is the educational level of the father?') ) status = models.CharField(max_length=50, choices=STATUS, default=STATUS.enrolled) @@ -358,17 +385,427 @@ class CLM(TimeStampedModel): blank=True, null=True, verbose_name=_('Comments') ) + unsuccessful_pretest_reason = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('disability', _('Disability')), + ('enrolled and did not do the pre-test', _("Enrolled and did not do the pre-test")), + ('enrolled in formal', _("Enrolled in formal education")), + ), + verbose_name=_('unsuccessful pre test reason') + ) unsuccessful_posttest_reason = models.CharField( max_length=100, blank=True, null=True, choices=Choices( + ('disability', _('Disability')), ('dropout', _("Dropout from the round")), ('uncompleted_participation', _("Uncompleted Participation")) ), verbose_name=_('unsuccessful post test reason') ) + phone_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Phone number') + ) + phone_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Phone number confirm') + ) + + education_status = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('out of school', _('Out of school')), + ('enrolled in formal education but did not continue', _("Enrolled in formal education but did not continue")), + ('enrolled in ABLN', _("Enrolled in ABLN")), + ), + verbose_name=_('Education status') + ) + + id_type = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('UNHCR Registered', _('UNHCR Registered')), + ('UNHCR Recorded', _("UNHCR Recorded")), + ('Syrian national ID', _("Syrian national ID")), + ('Palestinian national ID', _("Palestinian national ID")), + ('Lebanese national ID', _("Lebanese national ID")), + ('Child have no ID', _("Child have no ID")) + ), + verbose_name=_('Child ID type') + ) + + case_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Case number') + ) + case_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Case number confirm') + ) + + individual_case_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Individual Case number') + ) + individual_case_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Individual Case number confirm') + ) + + recorded_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Recorded number') + ) + recorded_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Recorded number confirm') + ) + + other_nationality = models.CharField( + max_length=200, + blank=True, + null=True, + verbose_name=_('Specify the nationality') + ) + + national_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Lebanese ID number ') + ) + national_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Lebanese ID number confirm') + ) + syrian_national_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Syrian ID number ') + ) + syrian_national_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Syrian ID number confirm') + ) + sop_national_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Palestinian ID number ') + ) + sop_national_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Palestinian ID number confirm') + ) + + source_of_identification = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('Referred by CP partner', _('Referred by CP partner')), + ('Referred by youth partner', _('Referred by youth partner')), + ('Family walked in to NGO', _('Family walked in to NGO')), + ('Referral from another NGO', _('Referral from another NGO')), + ('Referral from another Municipality', _('Referral from Municipality')), + ('Direct outreach', _('Direct outreach')), + ('List database', _('List database')) + ), + verbose_name=_('Source of identification of the child') + ) + + no_child_id_confirmation = models.CharField(max_length=50, blank=True, null=True,) + no_parent_id_confirmation = models.CharField(max_length=50, blank=True, null=True,) + + parent_id_type = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('UNHCR Registered', _('UNHCR Registered')), + ('UNHCR Recorded', _("UNHCR Recorded")), + ('Syrian national ID', _("Syrian national ID")), + ('Palestinian national ID', _("Palestinian national ID")), + ('Lebanese national ID', _("Lebanese national ID")), + ('Parent have no ID', _("Parent have no ID")) + ), + verbose_name=_('Parent ID type') + ) + + parent_case_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Case number') + ) + parent_case_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Case number confirm') + ) + + parent_individual_case_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Individual Case number') + ) + parent_individual_case_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Individual Case number confirm') + ) + + parent_national_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Lebanese ID number ') + ) + parent_national_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Lebanese ID number confirm') + ) + parent_syrian_national_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Syrian ID number ') + ) + parent_syrian_national_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Syrian ID number confirm') + ) + parent_sop_national_number = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Palestinian ID number ') + ) + parent_sop_national_number_confirm = models.CharField( + max_length=50, + blank=True, + null=True, + verbose_name=_('Palestinian ID number confirm') + ) + + referral_programme_type_1 = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('Formal Education', _('Formal Education')), + ('ALP', _('ALP')), + ('BLN', _('BLN')), + ('CP (PSS and/or Case Management)', _('CP (PSS and/or Case Management)')), + ('Youth', _('Youth')), + ('Health', _('Health')), + ('WASH', _('WASH')), + ('Specialized Services', _('Specialized Services')), + ('Other', _('Other')), + ), + verbose_name=_('Programme Type') + ) + referral_partner_1 = models.CharField( + max_length=500, + blank=True, + null=True, + verbose_name=_('School / Center') + ) + referral_date_1 = models.DateField( + blank=True, + null=True, + verbose_name=_('Referral date') + ) + confirmation_date_1 = models.DateField( + blank=True, + null=True, + verbose_name=_('Date when the receiving organization confirms accepting the child (or child receiving service)') + ) + + referral_programme_type_2 = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('Formal Education', _('Formal Education')), + ('ALP', _('ALP')), + ('BLN', _('BLN')), + ('CP (PSS and/or Case Management)', _('CP (PSS and/or Case Management)')), + ('Youth', _('Youth')), + ('Health', _('Health')), + ('WASH', _('WASH')), + ('Specialized Services', _('Specialized Services')), + ('Other', _('Other')), + ), + verbose_name=_('Programme Type') + ) + referral_partner_2 = models.CharField( + max_length=500, + blank=True, + null=True, + verbose_name=_('School / Center') + ) + referral_date_2 = models.DateField( + blank=True, + null=True, + verbose_name=_('Referral date') + ) + confirmation_date_2 = models.DateField( + blank=True, + null=True, + verbose_name=_('Date when the receiving organization confirms accepting the child (or child receiving service)') + ) + + referral_programme_type_3 = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('Formal Education', _('Formal Education')), + ('ALP', _('ALP')), + ('BLN', _('BLN')), + ('CP (PSS and/or Case Management)', _('CP (PSS and/or Case Management)')), + ('Youth', _('Youth')), + ('Health', _('Health')), + ('WASH', _('WASH')), + ('Specialized Services', _('Specialized Services')), + ('Other', _('Other')), + ), + verbose_name=_('Programme Type') + ) + referral_partner_3 = models.CharField( + max_length=500, + blank=True, + null=True, + verbose_name=_('School / Center') + ) + referral_date_3 = models.DateField( + blank=True, + null=True, + verbose_name=_('Referral date') + ) + confirmation_date_3 = models.DateField( + blank=True, + null=True, + verbose_name=_('Date when the receiving organization confirms accepting the child (or child receiving service)') + ) + + followup_call_reason_1 = models.TextField( + blank=True, + null=True, + verbose_name=_('Reason') + ) + followup_call_result_1 = models.TextField( + blank=True, + null=True, + verbose_name=_('Results') + ) + followup_call_date_1 = models.DateField( + blank=True, + null=True, + verbose_name=_('Call date') + ) + + followup_call_reason_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('Reason') + ) + followup_call_result_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('Results') + ) + followup_call_date_2 = models.DateField( + blank=True, + null=True, + verbose_name=_('Call date') + ) + + followup_visit_reason_1 = models.TextField( + blank=True, + null=True, + verbose_name=_('Reason') + ) + followup_visit_result_1 = models.TextField( + blank=True, + null=True, + verbose_name=_('Results') + ) + followup_visit_date_1 = models.DateField( + blank=True, + null=True, + verbose_name=_('Visit date') + ) + + caretaker_first_name = models.CharField( + max_length=500, + blank=False, + null=True, + verbose_name=_('Caretaker First Name') + ) + caretaker_middle_name = models.CharField( + max_length=500, + blank=False, + null=True, + verbose_name=_('Caretaker Middle Name') + ) + caretaker_last_name = models.CharField( + max_length=500, + blank=False, + null=True, + verbose_name=_('Caretaker Last Name') + ) + caretaker_mother_name = models.CharField( + max_length=500, + blank=False, + null=True, + verbose_name=_('Caretaker Mother Name') + ) + + cycle_completed = models.BooleanField(blank=True, default=False, verbose_name=_('Course completed successfully')) + enrolled_at_school = models.BooleanField(blank=True, default=False, verbose_name=_('Enrolled at School')) + @property def student_fullname(self): if self.student: @@ -421,14 +858,14 @@ class BLN(CLM): LEARNING_RESULT = Choices( ('', _('Learning result')), - # ('repeat_level', _('Repeat level')), - ('attended_public_school', _('Attended public school')), + ('graduated_to_bln_next_level', _('Graduated to the next level')), + ('graduated_to_bln_next_round_same_level', _('Graduated to the next round, same level')), + ('graduated_to_bln_next_round_higher_level', _('Graduated to the next round, higher level')), ('referred_to_alp', _('referred to ALP')), - ('referred_to_tvet', _('referred to TVET')), - ('ready_to_alp_but_not_possible', _('Ready for ALP but referral is not possible')), - ('reenrolled_in_alp', _('Re-register on another round of BLN')), - # ('not_enrolled_any_program', _('Not enrolled in any educational program')), - # ('dropout', _('Dropout from school')) + ('referred_public_school', _('Referred to public school')), + ('referred_to_tvet', _('Referred to TVET')), + ('referred_to_ybln', _('Referred to YBLN')), + ('dropout', _('Dropout, referral not possible')), ) cycle = models.ForeignKey( @@ -457,11 +894,28 @@ class BLN(CLM): verbose_name=_('Learning result') ) + participation = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('less_than_10days', _('Less than 10 absence days')), + ('10_15_days', _('10 to 15 absence days')), + ('15_20_days', _('15 to 20 absence days')), + ('more_than_20days', _('More than 20 absence days')), + ('no_absence', _('No Absence')) + ), + verbose_name=_('Participation') + ) + def calculate_score(self, stage): keys = [ 'BLN_ASSESSMENT/arabic', 'BLN_ASSESSMENT/math', 'BLN_ASSESSMENT/foreign_language', + 'BLN_ASSESSMENT/social_emotional', + 'BLN_ASSESSMENT/psychomotor', + 'BLN_ASSESSMENT/artistic', # 'BLN_ASSESSMENT/english', # 'BLN_ASSESSMENT/french' ] @@ -522,6 +976,18 @@ def foreign_language_improvement(self): return str(self.domain_improvement('foreign_language')) + '%' return str(french_english) + '%' + @property + def social_emotional_improvement(self): + return str(self.domain_improvement('social_emotional')) + '%' + + @property + def psychomotor_improvement(self): + return str(self.domain_improvement('psychomotor')) + '%' + + @property + def artistic_improvement(self): + return str(self.domain_improvement('artistic')) + '%' + def pre_assessment_form(self): return self.assessment_form(stage='pre_test', assessment_slug='bln_pre_test') @@ -529,7 +995,7 @@ def post_assessment_form(self): return self.assessment_form(stage='post_test', assessment_slug='bln_post_test') class Meta: - ordering = ['id'] + ordering = ['-id'] verbose_name = "BLN" verbose_name_plural = "BLN" @@ -729,7 +1195,7 @@ class RS(CLM): ) class Meta: - ordering = ['id'] + ordering = ['-id'] verbose_name = "RS" verbose_name_plural = "RS" @@ -918,9 +1384,9 @@ class CBECE(CLM): ('repeat_level', _('Repeat level')), ('graduated_next_level', _('Graduated to the next level')), ('graduated_to_formal_kg', _('Graduated to formal education - KG')), - ('graduated_to_formal_level1', _('Graduated to formal education - Level 1')), + ('graduated_to_formal_education_level1', _('Graduated to formal education - Level 1')), ('referred_to_another_program', _('Referred to another program')), - # ('dropout', _('Dropout from school')) + ('dropout', _('Dropout, referral not possible')) ) cycle = models.ForeignKey( @@ -1115,7 +1581,7 @@ def calculate_score(self, stage): } class Meta: - ordering = ['id'] + ordering = ['-id'] verbose_name = "CB-ECE" verbose_name_plural = "CB-ECE" @@ -1153,3 +1619,139 @@ class Meta: def __unicode__(self): return self.enrollment + + +class ABLN(CLM): + + LEARNING_RESULT = Choices( + ('', _('Learning result')), + ('graduated_to_abln_next_level', _('Graduated to the ABLN next level')), + ('graduated_to_abln_next_round_same_level', _('Graduated to the next round, same level')), + ('graduated_to_abln_next_round_higher_level', _('Graduated to the next round, higher level')), + ('referred_to_bln', _('Referred to BLN')), + ('referred_to_ybln', _('Referred to YBLN')), + ('referred_to_alp', _('Referred to ALP')), + ('referred_to_cbt', _('Referred to CBT')), + ('dropout', _('Dropout, referral not possible')), + ) + + cycle = models.ForeignKey( + Cycle, + blank=True, null=True, + related_name='+', + verbose_name=_('Cycle') + ) + referral = ArrayField( + models.CharField( + choices=CLM.REFERRAL, + max_length=100, + blank=True, + null=True, + ), + blank=True, + null=True, + verbose_name=_('Referral') + ) + + learning_result = models.CharField( + max_length=100, + blank=True, + null=True, + choices=LEARNING_RESULT, + verbose_name=_('Learning result') + ) + + participation = models.CharField( + max_length=100, + blank=True, + null=True, + choices=Choices( + ('less_than_3days', _('Less than 3 absence days')), + ('3_7_days', _('3 to 7 absence days')), + ('7_12_days', _('7 to 12 absence days')), + ('more_than_12days', _('More than 12 absence days')), + ('no_absence', _('No Absence')) + ), + verbose_name=_('Participation') + ) + + def calculate_score(self, stage): + keys = [ + 'ABLN_ASSESSMENT/arabic', + 'ABLN_ASSESSMENT/math', + 'ABLN_ASSESSMENT/social_emotional', + 'ABLN_ASSESSMENT/psychomotor', + 'ABLN_ASSESSMENT/artistic', + ] + super(ABLN, self).score(keys, stage) + + def assessment_form(self, stage, assessment_slug, callback=''): + try: + assessment = Assessment.objects.get(slug=assessment_slug) + return '{form}?d[status]={status}&d[enrollment_id]={enrollment_id}&d[enrollment_model]=ABLN&returnURL={callback}'.format( + form=assessment.assessment_form, + status=stage, + enrollment_id=self.id, + callback=callback + ) + except Assessment.DoesNotExist as ex: + return '' + + def domain_improvement(self, domain_mame): + key = '{}/{}'.format( + 'ABLN_ASSESSMENT', + domain_mame, + ) + try: + if self.pre_test and self.post_test: + return round(((float(self.post_test[key]) - float(self.pre_test[key])) / + 20.0) * 100.0, 2) + except Exception: + return 0.0 + return 0.0 + + def get_assessment_value(self, key, stage): + assessment = getattr(self, stage) + if assessment: + key = 'ABLN_ASSESSMENT/'+key + return assessment.get(key, 0) + return 0 + + @property + def arabic_improvement(self): + return str(self.domain_improvement('arabic')) + '%' + + @property + def math_improvement(self): + return str(self.domain_improvement('math')) + '%' + + @property + def english_improvement(self): + return str(self.domain_improvement('english')) + '%' + + @property + def french_improvement(self): + return str(self.domain_improvement('french')) + '%' + + @property + def social_emotional_improvement(self): + return str(self.domain_improvement('social_emotional')) + '%' + + @property + def psychomotor_improvement(self): + return str(self.domain_improvement('psychomotor')) + '%' + + @property + def artistic_improvement(self): + return str(self.domain_improvement('artistic')) + '%' + + def pre_assessment_form(self): + return self.assessment_form(stage='pre_test', assessment_slug='bln_pre_test') + + def post_assessment_form(self): + return self.assessment_form(stage='post_test', assessment_slug='bln_post_test') + + class Meta: + ordering = ['-id'] + verbose_name = "ABLN" + verbose_name_plural = "ABLN" diff --git a/student_registration/clm/serializers.py b/student_registration/clm/serializers.py index f6351e42c..8e34b3912 100644 --- a/student_registration/clm/serializers.py +++ b/student_registration/clm/serializers.py @@ -2,7 +2,7 @@ import json from rest_framework import serializers -from .models import CLM, BLN, RS, CBECE, SelfPerceptionGrades +from .models import CLM, BLN, ABLN, RS, CBECE, SelfPerceptionGrades def create_instance(validated_data, model): @@ -10,19 +10,30 @@ def create_instance(validated_data, model): from student_registration.students.models import Student student_data = validated_data.pop('student', None) + student = None + + if 'partner' in validated_data and validated_data['partner'] and validated_data['partner'].id == 10: + if 'internal_number' in validated_data and validated_data['internal_number']: + queryset = model.objects.filter(internal_number=validated_data['internal_number']) + + if queryset.count(): + student = queryset.first().student if 'id' in student_data and student_data['id']: student_serializer = StudentSerializer(Student.objects.get(id=student_data['id']), data=student_data) student_serializer.is_valid(raise_exception=True) student_serializer.instance = student_serializer.save() - else: + student = student_serializer.instance + + if not student: student_serializer = StudentSerializer(data=student_data) student_serializer.is_valid(raise_exception=True) student_serializer.instance = student_serializer.save() + student = student_serializer.instance try: instance = model.objects.create(**validated_data) - instance.student = student_serializer.instance + instance.student = student instance.save() except Exception as ex: @@ -32,11 +43,10 @@ def create_instance(validated_data, model): def update_instance(instance, validated_data): + from student_registration.students.serializers import StudentSerializer student_data = validated_data.pop('student', None) if student_data: - from student_registration.students.serializers import StudentSerializer - student_serializer = StudentSerializer(instance.student, data=student_data) student_serializer.is_valid(raise_exception=True) student_serializer.instance = student_serializer.save() @@ -79,16 +89,23 @@ class CLMSerializer(serializers.ModelSerializer): student_have_children = serializers.CharField(source='student.have_children', required=False) comments = serializers.CharField(required=False) unsuccessful_posttest_reason = serializers.CharField(required=False) + unsuccessful_pretest_reason = serializers.CharField(required=False) student_outreach_child = serializers.IntegerField(source='student.outreach_child', required=False) student_outreach_child_id = serializers.IntegerField(source='student.outreach_child.id', read_only=True) + governorate_name = serializers.CharField(source='governorate.name', read_only=True) + district_name = serializers.CharField(source='district.name', read_only=True) + partner_name = serializers.CharField(source='partner.name', read_only=True) + created = serializers.CharField(read_only=True) csrfmiddlewaretoken = serializers.IntegerField(source='owner.id', read_only=True) save = serializers.IntegerField(source='owner.id', read_only=True) + # internal = serializers.CharField(read_only=True) enrollment_id = serializers.IntegerField(source='id', read_only=True) search_clm_student = serializers.CharField(source='student.full_name', read_only=True) search_barcode = serializers.CharField(source='outreach_barcode', read_only=True) + class Meta: model = CLM fields = ( @@ -97,8 +114,10 @@ class Meta: # 'round_name', 'enrollment_id', 'student_id', + 'first_attendance_date', 'round', 'partner', + 'partner_name', 'language', 'student_outreach_child', 'student_outreach_child_id', @@ -121,16 +140,19 @@ class Meta: 'owner', 'modified_by', 'governorate', + 'governorate_name', 'district', + 'district_name', 'location', 'outreach_barcode', 'disability', 'student_family_status', 'student_have_children', - 'have_labour', - 'labours', - 'labour_hours', + # 'have_labour', + # 'labours', + # 'labour_hours', 'hh_educational_level', + 'father_educational_level', 'participation', 'barriers', 'learning_result', @@ -143,6 +165,11 @@ class Meta: 'save', 'comments', 'unsuccessful_posttest_reason', + 'unsuccessful_pretest_reason', + 'created', + 'cycle_completed', + 'enrolled_at_school', + # 'internal', ) @@ -159,8 +186,94 @@ class Meta: fields = CLMSerializer.Meta.fields + ( # 'cycle', # 'referral', + 'have_labour', + 'labours', + 'labour_hours', + 'student_family_status', + 'student_have_children', + 'phone_number', + 'phone_number_confirm', + 'id_type', + 'case_number', + 'case_number_confirm', + 'individual_case_number', + 'individual_case_number_confirm', + 'parent_individual_case_number', + 'parent_individual_case_number_confirm', + 'recorded_number', + 'recorded_number_confirm', + 'national_number', + 'national_number_confirm', + 'syrian_national_number', + 'syrian_national_number_confirm', + 'sop_national_number', + 'sop_national_number_confirm', + 'parent_national_number', + 'parent_national_number_confirm', + 'parent_syrian_national_number', + 'parent_syrian_national_number_confirm', + 'parent_sop_national_number', + 'parent_sop_national_number_confirm', + 'no_child_id_confirmation', + 'source_of_identification', + 'other_nationality', + 'education_status', + 'caretaker_first_name', + 'caretaker_middle_name', + 'caretaker_last_name', + 'caretaker_mother_name', + ) + + +class ABLNSerializer(CLMSerializer): + + def create(self, validated_data): + return create_instance(validated_data=validated_data, model=self.Meta.model) + + def update(self, instance, validated_data): + return update_instance(instance=instance, validated_data=validated_data) + + class Meta: + model = ABLN + fields = CLMSerializer.Meta.fields + ( + # 'cycle', + # 'referral', + 'have_labour', + 'labours', + 'labour_hours', 'student_family_status', 'student_have_children', + 'phone_number', + 'phone_number_confirm', + 'id_type', + 'case_number', + 'case_number_confirm', + 'individual_case_number', + 'individual_case_number_confirm', + 'parent_individual_case_number', + 'parent_individual_case_number_confirm', + 'recorded_number', + 'recorded_number_confirm', + 'national_number', + 'national_number_confirm', + 'syrian_national_number', + 'syrian_national_number_confirm', + 'sop_national_number', + 'sop_national_number_confirm', + 'parent_national_number', + 'parent_national_number_confirm', + 'parent_syrian_national_number', + 'parent_syrian_national_number_confirm', + 'parent_sop_national_number', + 'parent_sop_national_number_confirm', + 'no_child_id_confirmation', + 'source_of_identification', + 'other_nationality', + 'education_status', + 'caretaker_first_name', + 'caretaker_middle_name', + 'caretaker_last_name', + 'caretaker_mother_name', ) @@ -182,6 +295,9 @@ class Meta: 'grade', 'section', 'referral', + 'have_labour', + 'labours', + 'labour_hours', 'registered_in_school', 'student_family_status', 'student_have_children', diff --git a/student_registration/clm/tables.py b/student_registration/clm/tables.py index 116a4bd6e..a5703df14 100644 --- a/student_registration/clm/tables.py +++ b/student_registration/clm/tables.py @@ -2,7 +2,7 @@ import django_tables2 as tables from django.utils.translation import ugettext as _ -from .models import CLM, BLN, RS, CBECE +from .models import CLM, BLN, ABLN, RS, CBECE class BootstrapTable(tables.Table): @@ -21,12 +21,6 @@ class CommonTable(tables.Table): delete_column = tables.TemplateColumn(verbose_name=_('Delete student'), template_name='django_tables2/delete_column.html', attrs={'url': ''}) - # pre_assessment = tables.TemplateColumn(verbose_name=_('Pre-assessment'), - # template_name='django_tables2/clm_pre_assessment.html', - # attrs={'url': ''}) - # post_assessment = tables.TemplateColumn(verbose_name=_('Post-assessment'), - # template_name='django_tables2/clm_post_assessment.html', - # attrs={'url': ''}) student_age = tables.Column(verbose_name=_('Age'), accessor='student.age') student_birthday = tables.Column(verbose_name=_('Birthday'), accessor='student.birthday') @@ -43,27 +37,35 @@ class Meta: class BLNTable(CommonTable): edit_column = tables.TemplateColumn(verbose_name=_('Edit student'), orderable=False, - template_name='django_tables2/edit_column.html', - attrs={'url': '/clm/bln-edit/'}) + template_name='django_tables2/clm_edit_column.html', + attrs={'url': '/clm/bln-edit/', 'programme': 'BLN'}) delete_column = tables.TemplateColumn(verbose_name=_('Delete student'), orderable=False, - template_name='django_tables2/delete_column.html', - attrs={'url': '/api/clm-bln/'}) - # - # pre_assessment_result = tables.Column(verbose_name=_('Academic Result - Pre'), orderable=False, - # accessor='pre_test_score') - # post_assessment_result = tables.Column(verbose_name=_('Academic Result - Post'), orderable=False, - # accessor='post_test_score') - # - arabic_improvement = tables.Column(verbose_name=_('Arabic - Improvement'), orderable=False, + template_name='django_tables2/clm_delete_column.html', + attrs={'url': '/api/clm-bln/', 'programme': 'BLN'}) + referral_column = tables.TemplateColumn(verbose_name=_('refer'), orderable=False, + template_name='django_tables2/clm_referral_column.html', + attrs={'url': '/clm/bln-referral/', 'programme': 'BLN'}) + followup_column = tables.TemplateColumn(verbose_name=_('Follow-up'), orderable=False, + template_name='django_tables2/clm_followup_column.html', + attrs={'url': '/clm/bln-followup/', 'programme': 'BLN'}) + re_enroll_column = tables.TemplateColumn(verbose_name=_('Re-enroll'), orderable=False, + template_name='django_tables2/clm_re_enroll_column.html', + attrs={'url': '/clm/bln-add/', 'programme': 'BLN'}) + post_assessment_column = tables.TemplateColumn(verbose_name=_('Post-Assessment'), orderable=False, + template_name='django_tables2/clm_assessment_column.html', + attrs={'url': '/clm/bln-post-assessment/', 'programme': 'BLN'}) + arabic_improvement = tables.Column(verbose_name=_('Arabic Language Development - Improvement'), orderable=False, accessor='arabic_improvement') - # english_improvement = tables.Column(verbose_name=_('English - Improvement'), orderable=False, - # accessor='english_improvement') - # french_improvement = tables.Column(verbose_name=_('French - Improvement'), orderable=False, - # accessor='french_improvement') - foreign_language_improvement = tables.Column(verbose_name=_('Foreign language - Improvement'), orderable=False, + foreign_language_improvement = tables.Column(verbose_name=_('Foreign Language Development - Improvement'), orderable=False, accessor='foreign_language_improvement') - math_improvement = tables.Column(verbose_name=_('Math - Improvement'), orderable=False, + math_improvement = tables.Column(verbose_name=_('Cognitive Development - Mathematics - Improvement'), orderable=False, accessor='math_improvement') + social_emotional_improvement = tables.Column(verbose_name=_('Social-Emotional Development - Improvement'), orderable=False, + accessor='arabic_improvement') + psychomotor_improvement = tables.Column(verbose_name=_('Psychomotor Development for children with special needs - Improvement'), + orderable=False, accessor='arabic_improvement') + artistic_improvement = tables.Column(verbose_name=_('Artistic Development - Improvement'), orderable=False, + accessor='arabic_improvement') assessment_improvement = tables.Column(verbose_name=_('Assessment Result - Improvement'), orderable=False, accessor='assessment_improvement') @@ -72,13 +74,19 @@ class Meta: model = BLN fields = ( 'edit_column', + 'post_assessment_column', 'delete_column', + 'referral_column', + 'followup_column', + 're_enroll_column', + 'first_attendance_date', 'round', # 'cycle', 'governorate', 'district', 'internal_number', - 'student.id_number', + # 'student.id_number', + 'student.number', 'student.first_name', 'student.father_name', 'student.last_name', @@ -87,14 +95,87 @@ class Meta: 'student_birthday', 'student.nationality', 'student.mother_fullname', - # 'pre_assessment_result', - # 'post_assessment_result', 'arabic_improvement', - # 'english_improvement', - # 'french_improvement', 'foreign_language_improvement', 'math_improvement', + 'social_emotional_improvement', + 'psychomotor_improvement', + 'artistic_improvement', + 'assessment_improvement', + 'unsuccessful_pretest_reason', + 'unsuccessful_posttest_reason', + 'participation', + 'learning_result', + 'owner', + 'modified_by', + 'created', + 'modified', + 'comments', + ) + + +class ABLNTable(CommonTable): + + edit_column = tables.TemplateColumn(verbose_name=_('Edit student'), orderable=False, + template_name='django_tables2/clm_edit_column.html', + attrs={'url': '/clm/abln-edit/', 'programme': 'ABLN'}) + delete_column = tables.TemplateColumn(verbose_name=_('Delete student'), orderable=False, + template_name='django_tables2/clm_delete_column.html', + attrs={'url': '/api/clm-abln/', 'programme': 'ABLN'}) + referral_column = tables.TemplateColumn(verbose_name=_('refer'), orderable=False, + template_name='django_tables2/clm_referral_column.html', + attrs={'url': '/clm/abln-referral/', 'programme': 'ABLN'}) + followup_column = tables.TemplateColumn(verbose_name=_('Follow-up'), orderable=False, + template_name='django_tables2/clm_followup_column.html', + attrs={'url': '/clm/abln-followup/', 'programme': 'ABLN'}) + post_assessment_column = tables.TemplateColumn(verbose_name=_('Post-Assessment'), orderable=False, + template_name='django_tables2/clm_assessment_column.html', + attrs={'url': '/clm/abln-post-assessment/', 'programme': 'ABLN'}) + arabic_improvement = tables.Column(verbose_name=_('Arabic Language Development - Improvement'), orderable=False, + accessor='arabic_improvement') + math_improvement = tables.Column(verbose_name=_('Cognitive Development - Mathematics - Improvement'), orderable=False, + accessor='math_improvement') + social_emotional_improvement = tables.Column(verbose_name=_('Social-Emotional Development - Improvement'), orderable=False, + accessor='arabic_improvement') + psychomotor_improvement = tables.Column(verbose_name=_('Psychomotor Development for children with special needs - Improvement'), + orderable=False, accessor='arabic_improvement') + artistic_improvement = tables.Column(verbose_name=_('Artistic Development - Improvement'), orderable=False, + accessor='arabic_improvement') + + assessment_improvement = tables.Column(verbose_name=_('Assessment Result - Improvement'), orderable=False, + accessor='assessment_improvement') + + class Meta: + model = ABLN + fields = ( + 'edit_column', + 'post_assessment_column', + 'delete_column', + 'referral_column', + 'followup_column', + 'first_attendance_date', + 'round', + # 'cycle', + 'governorate', + 'district', + 'internal_number', + # 'student.id_number', + 'student.number', + 'student.first_name', + 'student.father_name', + 'student.last_name', + 'student.sex', + 'student_age', + 'student_birthday', + 'student.nationality', + 'student.mother_fullname', + 'arabic_improvement', + 'math_improvement', + 'social_emotional_improvement', + 'psychomotor_improvement', + 'artistic_improvement', 'assessment_improvement', + 'unsuccessful_pretest_reason', 'unsuccessful_posttest_reason', 'participation', 'learning_result', @@ -110,10 +191,10 @@ class RSTable(CommonTable): edit_column = tables.TemplateColumn(verbose_name=_('Edit student'), orderable=False, template_name='django_tables2/edit_column.html', - attrs={'url': '/clm/rs-edit/'}) + attrs={'url': '/clm/rs-edit/', 'programme': 'RS'}) delete_column = tables.TemplateColumn(verbose_name=_('Delete student'), orderable=False, template_name='django_tables2/delete_column.html', - attrs={'url': '/api/clm-rs/'}) + attrs={'url': '/api/clm-rs/', 'programme': 'RS'}) # Arabic reading result arabic_reading_improvement = tables.Column(verbose_name=_('Arabic Reading - Improvement'), orderable=False, @@ -176,6 +257,7 @@ class Meta: 'district', 'internal_number', 'student.id_number', + 'student.number', 'student.first_name', 'student.father_name', 'student.last_name', @@ -207,6 +289,7 @@ class Meta: 'self_pre_assessment', 'self_post_assessment', 'self_assessment_improvement', + 'unsuccessful_pretest_reason', 'unsuccessful_posttest_reason', 'participation', 'learning_result', @@ -221,11 +304,21 @@ class Meta: class CBECETable(CommonTable): edit_column = tables.TemplateColumn(verbose_name=_('Edit student'), orderable=False, - template_name='django_tables2/edit_column.html', - attrs={'url': '/clm/cbece-edit/'}) + template_name='django_tables2/clm_edit_column.html', + attrs={'url': '/clm/cbece-edit/', 'programme': 'CBECE'}) delete_column = tables.TemplateColumn(verbose_name=_('Delete student'), orderable=False, - template_name='django_tables2/delete_column.html', - attrs={'url': '/api/clm-cbece/'}) + template_name='django_tables2/clm_delete_column.html', + attrs={'url': '/api/clm-cbece/', 'programme': 'CBECE'}) + referral_column = tables.TemplateColumn(verbose_name=_('refer'), orderable=False, + template_name='django_tables2/clm_referral_column.html', + attrs={'url': '/clm/cbece-referral/', 'programme': 'CBECE'}) + followup_column = tables.TemplateColumn(verbose_name=_('Follow-up'), orderable=False, + template_name='django_tables2/clm_followup_column.html', + attrs={'url': '/clm/cbece-followup/', 'programme': 'CBECE'}) + + post_assessment_column = tables.TemplateColumn(verbose_name=_('Post-Assessment'), orderable=False, + template_name='django_tables2/clm_assessment_column.html', + attrs={'url': '/clm/cbece-post-assessment/', 'programme': 'CBECE'}) pre_assessment_result = tables.Column(verbose_name=_('Assessment Result - Pre'), orderable=False, accessor='pre_test_score') @@ -235,23 +328,27 @@ class CBECETable(CommonTable): assessment_improvement = tables.Column(verbose_name=_('Assessment Result - Improvement'), orderable=False, accessor='assessment_improvement') - art_improvement = tables.Column(verbose_name=_('Language Art Domain - Improvement'), orderable=False, + art_improvement = tables.Column(verbose_name=_('Language Development - Improvement'), orderable=False, accessor='art_improvement') - cognitive_improvement = tables.Column(verbose_name=_('Cognitive Domain - Improvement'), orderable=False, + cognitive_improvement = tables.Column(verbose_name=_('Cognitive Development - Mathematics - Improvement'), orderable=False, accessor='cognitive_improvement') - science_improvement = tables.Column(verbose_name=_('Cognitive domain Science - Improvement'), orderable=False, + science_improvement = tables.Column(verbose_name=_('Cognitive Development - Science - Improvement'), orderable=False, accessor='science_improvement') - social_improvement = tables.Column(verbose_name=_('Social Emotional Domain - Improvement'), orderable=False, + social_improvement = tables.Column(verbose_name=_('Social-Emotional Development - Improvement'), orderable=False, accessor='social_improvement') - psycho_improvement = tables.Column(verbose_name=_('Psychomotor Domain - Improvement'), orderable=False, + psycho_improvement = tables.Column(verbose_name=_('Psychomotor Development - Improvement'), orderable=False, accessor='psycho_improvement') - artistic_improvement = tables.Column(verbose_name=_('Artistic Domain - Improvement'), orderable=False, + artistic_improvement = tables.Column(verbose_name=_('Artistic Development - Improvement'), orderable=False, accessor='artistic_improvement') class Meta: model = CBECE fields = ( 'edit_column', + 'referral_column', + 'followup_column', + 'first_attendance_date', + 'post_assessment_column', 'delete_column', 'round', 'cycle', @@ -260,7 +357,8 @@ class Meta: 'governorate', 'district', 'internal_number', - 'student.id_number', + # 'student.id_number', + 'student.number', 'student.first_name', 'student.father_name', 'student.last_name', @@ -279,6 +377,7 @@ class Meta: 'psycho_improvement', 'artistic_improvement', 'final_grade', + 'unsuccessful_pretest_reason', 'unsuccessful_posttest_reason', 'participation', 'learning_result', diff --git a/student_registration/clm/urls.py b/student_registration/clm/urls.py index 76118ac8a..2bc3b29a5 100644 --- a/student_registration/clm/urls.py +++ b/student_registration/clm/urls.py @@ -56,7 +56,16 @@ view=views.BLNListView.as_view(), name='bln_list' ), - + url( + regex=r'^bln-referral/(?P[\w.@+-]+)/$', + view=views.BLNReferralView.as_view(), + name='bln_referral' + ), + url( + regex=r'^bln-followup/(?P[\w.@+-]+)/$', + view=views.BLNFollowupView.as_view(), + name='bln_followup' + ), url( regex=r'^rs-add/$', view=views.RSAddView.as_view(), @@ -98,4 +107,75 @@ view=views.CBECEListView.as_view(), name='cbece_list' ), + + url( + regex=r'^abln-add/$', + view=views.ABLNAddView.as_view(), + name='abln_add' + ), + url( + regex=r'^abln-edit/(?P[\w.@+-]+)/$', + view=views.ABLNEditView.as_view(), + name='abln_edit' + ), + url( + regex=r'^abln-export/$', + view=views.ABLNExportViewSet.as_view(), + name='abln_export' + ), + url( + regex=r'^abln-list/$', + view=views.ABLNListView.as_view(), + name='abln_list' + ), + url( + regex=r'^abln-referral/(?P[\w.@+-]+)/$', + view=views.ABLNReferralView.as_view(), + name='abln_referral' + ), + url( + regex=r'^abln-followup/(?P[\w.@+-]+)/$', + view=views.ABLNFollowupView.as_view(), + name='abln_followup' + ), + url( + regex=r'^abln-post-assessment/(?P[\w.@+-]+)/$', + view=views.ABLNPostAssessmentView.as_view(), + name='abln_post_assessment' + ), + url( + regex=r'^bln-post-assessment/(?P[\w.@+-]+)/$', + view=views.BLNPostAssessmentView.as_view(), + name='bln_post_assessment' + ), + url( + regex=r'^cbece-post-assessment/(?P[\w.@+-]+)/$', + view=views.CBECEPostAssessmentView.as_view(), + name='cbece_post_assessment' + ), + url( + regex=r'^cbece-referral/(?P[\w.@+-]+)/$', + view=views.CBECEReferralView.as_view(), + name='cbece_referral' + ), + url( + regex=r'^cbece-followup/(?P[\w.@+-]+)/$', + view=views.CBECEFollowupView.as_view(), + name='cbece_followup' + ), + url( + 'load-districts/$', + views.load_districts, + name='load_districts' + ), + url( + 'search-clm-child/$', + views.search_clm_child, + name='search_clm_child' + ), + url( + regex=r'^exec-abln-update/$', + view=views.ExecABLNUpdateView.as_view(), + name='exec_abln_update' + ), ] diff --git a/student_registration/clm/utils.py b/student_registration/clm/utils.py new file mode 100644 index 000000000..9272ca06d --- /dev/null +++ b/student_registration/clm/utils.py @@ -0,0 +1,61 @@ +from datetime import date + + +def is_allowed_create(programme): + from student_registration.schools.models import CLMRound + + try: + current = date.today() + current_round = CLMRound.objects.all() + + if programme == 'BLN': + current_round = current_round.get(current_round_bln=True) + if current_round.start_date_bln < current < current_round.end_date_bln: + return True + return False + + if programme == 'ABLN': + current_round = current_round.get(current_round_abln=True) + if current_round.start_date_abln < current < current_round.end_date_abln: + return True + return False + + if programme == 'CBECE': + current_round = current_round.get(current_round_cbece=True) + if current_round.start_date_cbece < current < current_round.end_date_cbece: + return True + return False + + except Exception as ex: + print(ex.message) + return False + + +def is_allowed_edit(programme): + from student_registration.schools.models import CLMRound + + try: + current = date.today() + current_round = CLMRound.objects.all() + + if programme == 'BLN': + current_round = current_round.get(current_round_bln=True) + if current_round.start_date_bln_edit < current < current_round.end_date_bln_edit: + return True + return False + + if programme == 'ABLN': + current_round = current_round.get(current_round_abln=True) + if current_round.start_date_abln_edit < current < current_round.end_date_abln_edit: + return True + return False + + if programme == 'CBECE': + current_round = current_round.get(current_round_cbece=True) + if current_round.start_date_cbece_edit < current < current_round.end_date_cbece_edit: + return True + return False + + except Exception as ex: + print(ex.message) + return False diff --git a/student_registration/clm/views.py b/student_registration/clm/views.py index 91766403b..07c467b97 100644 --- a/student_registration/clm/views.py +++ b/student_registration/clm/views.py @@ -5,12 +5,13 @@ from django.views.generic import ListView, FormView, TemplateView, UpdateView, View from django.contrib.auth.mixins import LoginRequiredMixin -from django.http import HttpResponse, JsonResponse, HttpResponseBadRequest +from django.http import HttpResponse, JsonResponse, HttpResponseBadRequest, HttpResponseForbidden from django.utils.decorators import method_decorator from django.views.decorators.csrf import csrf_exempt from django.views.generic.detail import SingleObjectMixin from django.db.models import Q, Sum, Avg, F, Func from django.db.models.expressions import RawSQL +from django.core.urlresolvers import reverse from rest_framework import status from rest_framework import viewsets, mixins, permissions @@ -26,11 +27,26 @@ from student_registration.outreach.serializers import ChildSerializer from student_registration.schools.models import CLMRound from student_registration.locations.models import Location -from .filters import BLNFilter, RSFilter, CBECEFilter -from .tables import BootstrapTable, BLNTable, RSTable, CBECETable -from .models import BLN, RS, CBECE, SelfPerceptionGrades -from .forms import BLNForm, RSForm, CBECEForm -from .serializers import BLNSerializer, RSSerializer, CBECESerializer, SelfPerceptionGradesSerializer +from .filters import BLNFilter, ABLNFilter, RSFilter, CBECEFilter +from .tables import BootstrapTable, BLNTable, ABLNTable, RSTable, CBECETable +from .models import BLN, ABLN, RS, CBECE, SelfPerceptionGrades, Disability, Assessment +from .forms import ( + BLNForm, + ABLNForm, + RSForm, + CBECEForm, + BLNReferralForm, + BLNFollowupForm, + ABLNReferralForm, + ABLNFollowupForm, + BLNAssessmentForm, + ABLNAssessmentForm, + CBECEAssessmentForm, + CBECEFollowupForm, + CBECEReferralForm, +) +from .serializers import BLNSerializer, ABLNSerializer, RSSerializer, CBECESerializer, SelfPerceptionGradesSerializer +from .utils import is_allowed_create, is_allowed_edit class CLMView(LoginRequiredMixin, @@ -46,11 +62,25 @@ def get_context_data(self, **kwargs): return {} +def assessment_form(instance_id, stage, enrollment_model, assessment_slug, callback=''): + try: + assessment = Assessment.objects.get(slug=assessment_slug) + return '{form}?d[status]={status}&d[enrollment_id]={enrollment_id}&d[enrollment_model]={enrollment_model}&returnURL={callback}'.format( + form=assessment.assessment_form, + status=stage, + enrollment_model=enrollment_model, + enrollment_id=instance_id, + callback=callback + ) + except Assessment.DoesNotExist: + return '' + + class BLNAddView(LoginRequiredMixin, GroupRequiredMixin, FormView): - template_name = 'clm/common_form.html' + template_name = 'clm/create_form.html' form_class = BLNForm success_url = '/clm/bln-list/' group_required = [u"CLM_BLN"] @@ -58,6 +88,16 @@ class BLNAddView(LoginRequiredMixin, def get_success_url(self): if self.request.POST.get('save_add_another', None): return '/clm/bln-add/' + if self.request.POST.get('save_and_continue', None): + return '/clm/bln-edit/' + str(self.request.session.get('instance_id')) + '/' + if self.request.POST.get('save_and_pretest', None): + return assessment_form( + instance_id=self.request.session.get('instance_id'), + stage='pre_test', + enrollment_model='BLN', + assessment_slug='bln_pre_test', + callback=self.request.build_absolute_uri(reverse('clm:bln_edit', + kwargs={'pk': self.request.session.get('instance_id')}))) return self.success_url def get_context_data(self, **kwargs): @@ -65,6 +105,7 @@ def get_context_data(self, **kwargs): """Insert the form into the context dict.""" if 'form' not in kwargs: kwargs['form'] = self.get_form() + kwargs['is_allowed_create'] = is_allowed_create('BLN') return super(BLNAddView, self).get_context_data(**kwargs) def get_initial(self): @@ -100,7 +141,7 @@ class BLNEditView(LoginRequiredMixin, GroupRequiredMixin, FormView): - template_name = 'clm/common_form.html' + template_name = 'clm/edit_form.html' form_class = BLNForm success_url = '/clm/bln-list/' group_required = [u"CLM_BLN"] @@ -108,6 +149,16 @@ class BLNEditView(LoginRequiredMixin, def get_success_url(self): if self.request.POST.get('save_add_another', None): return '/clm/bln-add/' + if self.request.POST.get('save_and_continue', None): + return '/clm/bln-edit/' + str(self.request.session.get('instance_id')) + '/' + if self.request.POST.get('save_and_pretest', None): + return assessment_form( + instance_id=self.request.session.get('instance_id'), + stage='pre_test', + enrollment_model='BLN', + assessment_slug='bln_pre_test', + callback=self.request.build_absolute_uri(reverse('clm:bln_edit', + kwargs={'pk': self.request.session.get('instance_id')}))) return self.success_url def get_context_data(self, **kwargs): @@ -115,6 +166,7 @@ def get_context_data(self, **kwargs): """Insert the form into the context dict.""" if 'form' not in kwargs: kwargs['form'] = self.get_form() + kwargs['is_allowed_edit'] = is_allowed_edit('BLN') return super(BLNEditView, self).get_context_data(**kwargs) def get_form(self, form_class=None): @@ -149,11 +201,16 @@ def post(self, request, *args, **kwargs): status = payload['status'] enrollment_id = payload['enrollment_id'] model = payload['enrollment_model'] + static_model_value = payload['static_model_value'] if 'static_model_value' in payload else '' - if model == 'BLN': + if model == 'BLN' or 'BLN_ASSESSMENT/arabic' in payload: enrollment = BLN.objects.get(id=int(enrollment_id)) - elif model == 'RS': - enrollment = RS.objects.get(id=int(enrollment_id)) + elif model == 'ABLN' or 'ABLN_ASSESSMENT/arabic' in payload: + enrollment = ABLN.objects.get(id=int(enrollment_id)) + elif model == 'CBECE': + enrollment = CBECE.objects.get(id=int(enrollment_id)) + # elif model == 'RS': + # enrollment = RS.objects.get(id=int(enrollment_id)) else: enrollment = CBECE.objects.get(id=int(enrollment_id)) @@ -185,6 +242,66 @@ def get_queryset(self): return BLN.objects.filter(partner=self.request.user.partner_id) +class BLNReferralView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/bln_referral.html' + form_class = BLNReferralForm + success_url = '/clm/bln-list/' + group_required = [u"CLM_BLN"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(BLNReferralView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + form_class = self.get_form_class() + instance = BLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + if self.request.method == "POST": + return form_class(self.request.POST, instance=instance) + else: + return form_class(instance=instance) + + def form_valid(self, form): + instance = BLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + form.save(request=self.request, instance=instance) + return super(BLNReferralView, self).form_valid(form) + + +class BLNFollowupView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/bln_followup.html' + form_class = BLNFollowupForm + success_url = '/clm/bln-list/' + group_required = [u"CLM_BLN"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(BLNFollowupView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + form_class = self.get_form_class() + instance = BLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + if self.request.method == "POST": + return form_class(self.request.POST, instance=instance) + else: + return form_class(instance=instance) + + def form_valid(self, form): + instance = BLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + form.save(request=self.request, instance=instance) + return super(BLNFollowupView, self).form_valid(form) + + class BLNDashboardView(LoginRequiredMixin, GroupRequiredMixin, TemplateView): @@ -279,6 +396,284 @@ def get_context_data(self, **kwargs): } +class ABLNAddView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/create_form.html' + form_class = ABLNForm + success_url = '/clm/abln-list/' + group_required = [u"CLM_ABLN"] + + def get_success_url(self): + if self.request.POST.get('save_add_another', None): + return '/clm/abln-add/' + if self.request.POST.get('save_and_continue', None): + return '/clm/abln-edit/' + str(self.request.session.get('instance_id')) + '/' + if self.request.POST.get('save_and_pretest', None): + return assessment_form( + instance_id=self.request.session.get('instance_id'), + stage='pre_test', + enrollment_model='ABLN', + assessment_slug='abln_pre_test', + callback=self.request.build_absolute_uri(reverse('clm:abln_edit', + kwargs={'pk': self.request.session.get('instance_id')}))) + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + kwargs['is_allowed_create'] = is_allowed_create('ABLN') + return super(ABLNAddView, self).get_context_data(**kwargs) + + def get_initial(self): + initial = super(ABLNAddView, self).get_initial() + data = { + 'new_registry': self.request.GET.get('new_registry', ''), + 'student_outreached': self.request.GET.get('student_outreached', ''), + 'have_barcode': self.request.GET.get('have_barcode', '') + } + if self.request.GET.get('enrollment_id'): + instance = ABLN.objects.get(id=self.request.GET.get('enrollment_id')) + data = ABLNSerializer(instance).data + data['student_nationality'] = data['student_nationality_id'] + data['learning_result'] = '' + + if self.request.GET.get('child_id'): + instance = Child.objects.get(id=int(self.request.GET.get('child_id'))) + data = ChildSerializer(instance).data + if data: + data['new_registry'] = self.request.GET.get('new_registry', '') + data['student_outreached'] = self.request.GET.get('student_outreached', '') + data['have_barcode'] = self.request.GET.get('have_barcode', '') + initial = data + + return initial + + def form_valid(self, form): + form.save(self.request) + return super(ABLNAddView, self).form_valid(form) + + +class ABLNEditView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/edit_form.html' + form_class = ABLNForm + success_url = '/clm/abln-list/' + group_required = [u"CLM_ABLN"] + + def get_success_url(self): + if self.request.POST.get('save_add_another', None): + return '/clm/abln-add/' + if self.request.POST.get('save_and_continue', None): + return '/clm/abln-edit/' + str(self.request.session.get('instance_id')) + '/' + if self.request.POST.get('save_and_pretest', None): + return assessment_form( + instance_id=self.request.session.get('instance_id'), + stage='pre_test', + enrollment_model='ABLN', + assessment_slug='abln_pre_test', + callback=self.request.build_absolute_uri(reverse('clm:abln_edit', + kwargs={'pk': self.request.session.get('instance_id')}))) + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + kwargs['is_allowed_edit'] = is_allowed_edit('ABLN') + return super(ABLNEditView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = ABLN.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + return ABLNForm(self.request.POST, instance=instance, request=self.request) + else: + data = ABLNSerializer(instance).data + data['student_nationality'] = data['student_nationality_id'] + return ABLNForm(data, instance=instance, request=self.request) + + def form_valid(self, form): + instance = ABLN.objects.get(id=self.kwargs['pk']) + form.save(request=self.request, instance=instance) + return super(ABLNEditView, self).form_valid(form) + + +class ABLNListView(LoginRequiredMixin, + GroupRequiredMixin, + FilterView, + ExportMixin, + SingleTableView, + RequestConfig): + + table_class = ABLNTable + model = ABLN + template_name = 'clm/abln_list.html' + table = BootstrapTable(ABLN.objects.all(), order_by='id') + group_required = [u"CLM_ABLN"] + + filterset_class = ABLNFilter + + def get_queryset(self): + force_default_language(self.request) + return ABLN.objects.filter(partner=self.request.user.partner_id) + + +class ABLNReferralView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/abln_referral.html' + form_class = ABLNReferralForm + success_url = '/clm/abln-list/' + group_required = [u"CLM_ABLN"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(ABLNReferralView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + form_class = self.get_form_class() + instance = ABLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + if self.request.method == "POST": + return form_class(self.request.POST, instance=instance) + else: + return form_class(instance=instance) + + def form_valid(self, form): + instance = ABLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + form.save(request=self.request, instance=instance) + return super(ABLNReferralView, self).form_valid(form) + + +class ABLNPostAssessmentView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/abln_post_assessment.html' + form_class = ABLNAssessmentForm + success_url = '/clm/abln-list/' + group_required = [u"CLM_ABLN"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(ABLNPostAssessmentView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + form_class = self.get_form_class() + instance = ABLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + if self.request.method == "POST": + return form_class(self.request.POST, instance=instance, request=self.request) + else: + return form_class(instance=instance, request=self.request) + + def form_valid(self, form): + instance = ABLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + form.save(request=self.request, instance=instance) + return super(ABLNPostAssessmentView, self).form_valid(form) + + +class BLNPostAssessmentView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/bln_post_assessment.html' + form_class = BLNAssessmentForm + success_url = '/clm/bln-list/' + group_required = [u"CLM_BLN"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(BLNPostAssessmentView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + form_class = self.get_form_class() + instance = BLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + if self.request.method == "POST": + return form_class(self.request.POST, instance=instance, request=self.request) + else: + return form_class(instance=instance, request=self.request) + + def form_valid(self, form): + instance = BLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + form.save(request=self.request, instance=instance) + return super(BLNPostAssessmentView, self).form_valid(form) + + +class CBECEPostAssessmentView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/cbece_post_assessment.html' + form_class = CBECEAssessmentForm + success_url = '/clm/cbece-list/' + group_required = [u"CLM_CBECE"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(CBECEPostAssessmentView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + form_class = self.get_form_class() + instance = CBECE.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + if self.request.method == "POST": + return form_class(self.request.POST, instance=instance, request=self.request) + else: + return form_class(instance=instance, request=self.request) + + def form_valid(self, form): + instance = CBECE.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + form.save(request=self.request, instance=instance) + return super(CBECEPostAssessmentView, self).form_valid(form) + + +class ABLNFollowupView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/abln_followup.html' + form_class = ABLNFollowupForm + success_url = '/clm/abln-list/' + group_required = [u"CLM_ABLN"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(ABLNFollowupView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + form_class = self.get_form_class() + instance = ABLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + if self.request.method == "POST": + return form_class(self.request.POST, instance=instance) + else: + return form_class(instance=instance) + + def form_valid(self, form): + instance = ABLN.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + form.save(request=self.request, instance=instance) + return super(ABLNFollowupView, self).form_valid(form) + + class RSDashboardView(LoginRequiredMixin, GroupRequiredMixin, TemplateView): @@ -294,6 +689,7 @@ def get_context_data(self, **kwargs): clm_round = self.request.user.partner.rs_round clm_rounds = CLMRound.objects.all() governorates = Location.objects.filter(parent__isnull=True) + disability = Disability.objects.filter(active=True) # queryset = self.model.objects.filter(round=clm_round) queryset = self.model.objects.all() @@ -312,6 +708,11 @@ def get_context_data(self, **kwargs): repeat_class_male = repeat_class.filter(student__sex='Male') repeat_class_female = repeat_class.filter(student__sex='Female') + student_male = queryset.filter(student__sex='Male') + student_female = queryset.filter(student__sex='Female') + + dis_gov = [] + for gov in governorates: total_gov = queryset.filter(governorate=gov).count() @@ -364,12 +765,30 @@ def get_context_data(self, **kwargs): 'repetition_male': round((float(repeat_class_male_gov) / float(total_gov)) * 100.0, 2) if total_gov else 0.0, 'repetition_female': round((float(repeat_class_female_gov) / float(total_gov)) * 100.0, 2) if total_gov else 0.0, + + + 'repetition_male1': round((float(repeat_class_male_gov) / float(total_gov)) * 100.0, + 2) if total_gov else 0.0, + 'repetition_female1': round((float(repeat_class_female_gov) / float(total_gov)) * 100.0, + 2) if total_gov else 0.0, }) + dis_count = [] + for dis in disability: + dis_count.append({ + 'student_male_dis': student_male.filter(governorate=gov, disability=dis).count(), + 'student_female_dis': student_female.filter(governorate=gov, disability=dis).count(), + }) + dis_gov.append({ + 'governorate': gov.name, + 'dis': dis_count + }) return { 'clm_round': clm_round, 'clm_rounds': clm_rounds, - 'per_gov': per_gov + 'per_gov': per_gov, + 'disability': disability, + 'dis_gov': dis_gov } @@ -507,7 +926,7 @@ class RSAddView(LoginRequiredMixin, GroupRequiredMixin, FormView): - template_name = 'clm/common_form.html' + template_name = 'clm/create_form.html' form_class = RSForm success_url = '/clm/rs-list/' group_required = [u"CLM_RS"] @@ -515,6 +934,17 @@ class RSAddView(LoginRequiredMixin, def get_success_url(self): if self.request.POST.get('save_add_another', None): return '/clm/rs-add/' + if self.request.POST.get('save_and_continue', None): + return '/clm/rs-edit/' + str(self.request.session.get('instance_id')) + '/' + if self.request.POST.get('save_and_pretest', None): + return assessment_form( + instance_id=self.request.session.get('instance_id'), + stage='pre_test', + enrollment_model='RS', + assessment_slug='rs_pre_test', + callback=self.request.build_absolute_uri(reverse('clm:rs_edit', + kwargs={'pk': self.request.session.get('instance_id')}))) + return self.success_url def get_context_data(self, **kwargs): @@ -522,6 +952,7 @@ def get_context_data(self, **kwargs): """Insert the form into the context dict.""" if 'form' not in kwargs: kwargs['form'] = self.get_form() + kwargs['is_allowed_create'] = True return super(RSAddView, self).get_context_data(**kwargs) def get_initial(self): @@ -566,7 +997,7 @@ class RSEditView(LoginRequiredMixin, GroupRequiredMixin, FormView): - template_name = 'clm/common_form.html' + template_name = 'clm/edit_form.html' form_class = RSForm success_url = '/clm/rs-list/' group_required = [u"CLM_RS"] @@ -574,6 +1005,8 @@ class RSEditView(LoginRequiredMixin, def get_success_url(self): if self.request.POST.get('save_add_another', None): return '/clm/rs-add/' + if self.request.POST.get('save_and_continue', None): + return '/clm/rs-edit/' + str(self.request.session.get('instance_id')) + '/' return self.success_url def get_context_data(self, **kwargs): @@ -581,6 +1014,7 @@ def get_context_data(self, **kwargs): """Insert the form into the context dict.""" if 'form' not in kwargs: kwargs['form'] = self.get_form() + kwargs['is_allowed_edit'] = True return super(RSEditView, self).get_context_data(**kwargs) def get_form(self, form_class=None): @@ -622,7 +1056,7 @@ class CBECEAddView(LoginRequiredMixin, GroupRequiredMixin, FormView): - template_name = 'clm/common_form.html' + template_name = 'clm/create_form.html' form_class = CBECEForm success_url = '/clm/cbece-list/' group_required = [u"CLM_CBECE"] @@ -630,6 +1064,16 @@ class CBECEAddView(LoginRequiredMixin, def get_success_url(self): if self.request.POST.get('save_add_another', None): return '/clm/cbece-add/' + if self.request.POST.get('save_and_continue', None): + return '/clm/cbece-edit/' + str(self.request.session.get('instance_id')) + '/' + if self.request.POST.get('save_and_pretest', None): + return assessment_form( + instance_id=self.request.session.get('instance_id'), + stage='pre_test', + enrollment_model='CBECE', + assessment_slug='cbece_pre_test', + callback=self.request.build_absolute_uri(reverse('clm:cbece_edit', + kwargs={'pk': self.request.session.get('instance_id')}))) return self.success_url def get_context_data(self, **kwargs): @@ -637,6 +1081,7 @@ def get_context_data(self, **kwargs): """Insert the form into the context dict.""" if 'form' not in kwargs: kwargs['form'] = self.get_form() + kwargs['is_allowed_create'] = is_allowed_create('CBECE') return super(CBECEAddView, self).get_context_data(**kwargs) def get_initial(self): @@ -672,7 +1117,7 @@ class CBECEEditView(LoginRequiredMixin, GroupRequiredMixin, FormView): - template_name = 'clm/common_form.html' + template_name = 'clm/edit_form.html' form_class = CBECEForm success_url = '/clm/cbece-list/' group_required = [u"CLM_CBECE"] @@ -680,6 +1125,16 @@ class CBECEEditView(LoginRequiredMixin, def get_success_url(self): if self.request.POST.get('save_add_another', None): return '/clm/cbece-add/' + if self.request.POST.get('save_and_continue', None): + return '/clm/cbece-edit/' + str(self.request.session.get('instance_id')) + '/' + if self.request.POST.get('save_and_pretest', None): + return assessment_form( + instance_id=self.request.session.get('instance_id'), + stage='pre_test', + enrollment_model='CBECE', + assessment_slug='cbece_pre_test', + callback=self.request.build_absolute_uri(reverse('clm:cbece_edit', + kwargs={'pk': self.request.session.get('instance_id')}))) return self.success_url def get_context_data(self, **kwargs): @@ -687,6 +1142,7 @@ def get_context_data(self, **kwargs): """Insert the form into the context dict.""" if 'form' not in kwargs: kwargs['form'] = self.get_form() + kwargs['is_allowed_edit'] = is_allowed_edit('CBECE') return super(CBECEEditView, self).get_context_data(**kwargs) def get_form(self, form_class=None): @@ -724,6 +1180,65 @@ def get_queryset(self): return CBECE.objects.filter(partner=self.request.user.partner_id) +class CBECEReferralView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/cbece_referral.html' + form_class = CBECEReferralForm + success_url = '/clm/cbece-list/' + group_required = [u"CLM_CBECE"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(CBECEReferralView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + form_class = self.get_form_class() + instance = CBECE.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + if self.request.method == "POST": + return form_class(self.request.POST, instance=instance) + else: + return form_class(instance=instance) + + def form_valid(self, form): + instance = CBECE.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + form.save(request=self.request, instance=instance) + return super(CBECEReferralView, self).form_valid(form) + + +class CBECEFollowupView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'clm/cbece_followup.html' + form_class = CBECEFollowupForm + success_url = '/clm/cbece-list/' + group_required = [u"CLM_CBECE"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(CBECEFollowupView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + form_class = self.get_form_class() + instance = CBECE.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + if self.request.method == "POST": + return form_class(self.request.POST, instance=instance) + else: + return form_class(instance=instance) + + def form_valid(self, form): + instance = CBECE.objects.get(id=self.kwargs['pk'], partner=self.request.user.partner_id) + form.save(request=self.request, instance=instance) + return super(CBECEFollowupView, self).form_valid(form) + ####################### API VIEWS ############################# @@ -739,7 +1254,11 @@ class BLNViewSet(mixins.RetrieveModelMixin, permission_classes = (permissions.IsAuthenticated,) def get_queryset(self): + from datetime import datetime + qs = self.queryset + if self.request.GET.get('creation_date', None): + return self.queryset.filter(created__gte=datetime.strptime(self.request.GET.get('creation_date', None), '%Y-%m-%d')) if self.request.GET.get('school', None): return self.queryset.filter(school_id=self.request.GET.get('school', None)) @@ -751,19 +1270,23 @@ def delete(self, request, *args, **kwargs): return JsonResponse({'status': status.HTTP_200_OK}) -class RSViewSet(mixins.RetrieveModelMixin, - mixins.ListModelMixin, - mixins.CreateModelMixin, - mixins.UpdateModelMixin, - viewsets.GenericViewSet): +class ABLNViewSet(mixins.RetrieveModelMixin, + mixins.ListModelMixin, + mixins.CreateModelMixin, + mixins.UpdateModelMixin, + viewsets.GenericViewSet): - model = RS - queryset = RS.objects.all() - serializer_class = RSSerializer + model = ABLN + queryset = ABLN.objects.all() + serializer_class = ABLNSerializer permission_classes = (permissions.IsAuthenticated,) def get_queryset(self): + from datetime import datetime + qs = self.queryset + if self.request.GET.get('creation_date', None): + return self.queryset.filter(created__gte=datetime.strptime(self.request.GET.get('creation_date', None), '%Y-%m-%d')) if self.request.GET.get('school', None): return self.queryset.filter(school_id=self.request.GET.get('school', None)) @@ -775,8 +1298,32 @@ def delete(self, request, *args, **kwargs): return JsonResponse({'status': status.HTTP_200_OK}) -class CBECEViewSet(mixins.RetrieveModelMixin, - mixins.ListModelMixin, +class RSViewSet(mixins.RetrieveModelMixin, + mixins.ListModelMixin, + mixins.CreateModelMixin, + mixins.UpdateModelMixin, + viewsets.GenericViewSet): + + model = RS + queryset = RS.objects.all() + serializer_class = RSSerializer + permission_classes = (permissions.IsAuthenticated,) + + def get_queryset(self): + qs = self.queryset + if self.request.GET.get('school', None): + return self.queryset.filter(school_id=self.request.GET.get('school', None)) + + return qs + + def delete(self, request, *args, **kwargs): + instance = self.model.objects.get(id=kwargs['pk']) + instance.delete() + return JsonResponse({'status': status.HTTP_200_OK}) + + +class CBECEViewSet(mixins.RetrieveModelMixin, + mixins.ListModelMixin, mixins.CreateModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet): @@ -830,7 +1377,7 @@ def get_queryset(self): self.model = CBECE self.serializer_class = CBECESerializer - qs = self.model.objects.all() + qs = self.model.objects.filter(partner=self.request.user.partner_id) if terms: for term in terms.split(): @@ -855,10 +1402,13 @@ def get_queryset(self): def get(self, request, *args, **kwargs): headers = { + 'id': 'enropllment_id', 'partner__name': 'Partner', + 'source_of_identification': 'Source of Identification', + 'first_attendance_date': 'first attendance date', 'round__name': 'CLM Round', - 'governorate__name': 'Governorate', - 'district__name': 'District', + 'governorate__name_en': 'Governorate', + 'district__name_en': 'District', 'location': 'Location', 'language': 'The language supported in the program', 'student__first_name': 'First name', @@ -875,22 +1425,63 @@ def get(self, request, *args, **kwargs): 'student__number': 'unique number', 'student__family_status': 'What is the family status of the child?', 'student__have_children': 'Does the child have children?', - 'disability__name': 'Does the child have any disability or special need?', + 'disability__name_en': 'Does the child have any disability or special need?', 'internal_number': 'Internal number', 'comments': 'Comments', - 'hh_educational_level__name': 'What is the educational level of a person who is valuable to the child?', + + 'phone_number': 'Phone number', + 'phone_number_confirm': 'Phone number confirm', + + 'id_type': 'ID Type', + 'case_number': 'UNHCR case number', + 'case_number_confirm': 'UNHCR case number confirm', + 'individual_case_number': 'Child individual ID', + 'individual_case_number_confirm': 'Child individual ID confirm', + 'parent_individual_case_number': 'Parent individual ID', + 'parent_individual_case_number_confirm': 'Parent individual ID confirm', + 'recorded_number': 'UNHCR recorded barcode', + 'recorded_number_confirm': 'UNHCR recorded barcode confirm', + 'national_number': 'Child Lebanese ID number', + 'national_number_confirm': 'Child Lebanese ID number confirm', + 'syrian_national_number': 'Child Syrian ID number', + 'syrian_national_number_confirm': 'Child Syrian ID number confirm', + 'sop_national_number': 'Child Palestinian ID number', + 'sop_national_number_confirm': 'Child Palestinian ID number confirm', + 'parent_national_number': 'Parent Lebanese ID number', + 'parent_national_number_confirm': 'Parent Lebanese ID number confirm', + 'parent_syrian_national_number': 'Parent Syrian ID number', + 'parent_syrian_national_number_confirm': 'Parent Syrian ID number confirm', + 'parent_sop_national_number': 'Parent Palestinian ID number', + 'parent_sop_national_number_confirm': 'Parent Palestinian ID number confirm', + 'caretaker_first_name': 'Caretaker first name', + 'caretaker_middle_name': 'Caretaker middle name', + 'caretaker_last_name': 'Caretaker last name', + 'caretaker_mother_name': 'Caretaker mother name', + + 'hh_educational_level__name': 'What is the educational level of the mother?', + 'father_educational_level__name': 'What is the educational level of the father?', 'have_labour': 'Does the child participate in work?', 'labours': 'What is the type of work?', 'labour_hours': 'How many hours does this child work in a day?', - 'pre_test_arabic': 'Pre-test Arabic', - 'pre_test_foreign_language': 'Pre-test Foreign language', - 'pre_test_math': 'Pre-test Math', + + 'unsuccessful_pretest_reason': 'Reason why not doing the Pre-test', + 'unsuccessful_posttest_reason': 'Reason why not doing the Post-test', + + 'pre_test_arabic': 'Pre-test Arabic Language Development ', + 'pre_test_foreign_language': 'Pre-test Foreign Language Development', + 'pre_test_math': 'Pre-test Cognitive Development - Mathematics', + 'pre_test_social_emotional': 'Pre-test Social-Emotional Development', + 'pre_test_psychomotor': 'Pre-test Psychomotor Development for children with special need', + 'pre_test_artistic': 'Pre-test Artistic Development', 'pre_test_score': 'Pre-test score', - 'post_test_arabic': 'Post-test Arabic', - 'post_test_foreign_language': 'Post-test Foreign language', - 'post_test_math': 'Post-test Math', + 'post_test_arabic': 'Post-test Arabic Language Development ', + 'post_test_foreign_language': 'Post-test Foreign Language Development', + 'post_test_math': 'Post-test Cognitive Development - Mathematics', + 'post_test_social_emotional': 'Post-test Social-Emotional Development', + 'post_test_psychomotor': 'Post-test Psychomotor Development for children with special need', + 'post_test_artistic': 'Post-test Artistic Development', 'post_test_score': 'Post-test Score', - 'participation': 'How was the level of child participation in the program?', + 'participation': 'Level of participation / Absence', 'barriers': 'The main barriers affecting the daily attendance and performance of the child or drop out of school?', 'learning_result': 'Based on the overall score, what is the recommended learning path?', 'new_registry': 'First time registered?', @@ -900,20 +1491,298 @@ def get(self, request, *args, **kwargs): 'modified_by__username': 'modified_by', 'created': 'created', 'modified': 'modified', + + 'referral_programme_type_1': 'Referral programme type 1', + 'referral_partner_1': 'Referral partner 1', + 'referral_date_1': 'Referral date 1', + 'confirmation_date_1': 'Referral confirmation date 1', + + 'referral_programme_type_2': 'Referral programme type 2', + 'referral_partner_2': 'Referral partner 2', + 'referral_date_2': 'Referral date 2', + 'confirmation_date_2': 'Referral confirmation date 2', + + 'referral_programme_type_3': 'Referral programme type 3', + 'referral_partner_3': 'Referral partner 3', + 'referral_date_3': 'Referral date 3', + 'confirmation_date_3': 'Referral confirmation date 3', + + 'followup_call_date_1': 'Follow-up call 1 date', + 'followup_call_reason_1': 'Follow-up call 1 reason', + 'followup_call_result_1': 'Follow-up call 1 result', + + 'followup_call_date_2': 'Follow-up call 2 date', + 'followup_call_reason_2': 'Follow-up call 2 reason', + 'followup_call_result_2': 'Follow-up call 2 result', + + 'followup_visit_date_1': 'Follow-up visit 1 date', + 'followup_visit_reason_1': 'Follow-up visit 1 reason', + 'followup_visit_result_1': 'Follow-up visit 1 result', } + header_list = ( + 'enropllment_id', + 'Partner', + 'Source of Identification', + 'first attendance date', + 'CLM Round', + 'Governorate', + 'District', + 'Location', + 'The language supported in the program', + 'First name', + 'Father name', + 'Last name', + 'Sex', + 'Birthday - day', + 'Birthday - month', + 'Birthday - year', + 'Nationality', + 'Mother fullname', + 'P-Code If a child lives in a tent / Brax in a random camp', + 'ID number', + 'unique number', + 'What is the family status of the child?', + 'Does the child have children?', + 'Does the child have any disability or special need?', + 'Internal number', + 'Comments', + + 'Phone number', + 'Phone number confirm', + + 'ID Type', + 'UNHCR case number', + 'UNHCR case number confirm', + 'Child individual ID', + 'Child individual ID confirm', + 'Parent individual ID', + 'Parent individual ID confirm', + 'UNHCR recorded barcode', + 'UNHCR recorded barcode confirm', + 'Child Lebanese ID number', + 'Child Lebanese ID number confirm', + 'Child Syrian ID number', + 'Child Syrian ID number confirm', + 'Child Palestinian ID number', + 'Child Palestinian ID number confirm', + 'Parent Lebanese ID number', + 'Parent Lebanese ID number confirm', + 'Parent Syrian ID number', + 'Parent Syrian ID number confirm', + 'Parent Palestinian ID number', + 'Parent Palestinian ID number confirm', + 'Caretaker first name', + 'Caretaker middle name', + 'Caretaker last name', + 'Caretaker mother name', + + 'What is the educational level of a person who is valuable to the child?', + 'Does the child participate in work?', + 'What is the type of work?', + 'How many hours does this child work in a day?', + + 'Reason why not doing the Pre-test', + 'Reason why not doing the Post-test', + + 'Pre-test Arabic Language Development ', + 'Pre-test Cognitive Development - Mathematics', + 'Pre-test Social-Emotional Development', + 'Pre-test Psychomotor Development for children with special need', + 'Pre-test Artistic Development', + 'Pre-test score', + 'Post-test Arabic Language Development ', + 'Post-test Cognitive Development - Mathematics', + 'Post-test Social-Emotional Development', + 'Post-test Psychomotor Development for children with special need', + 'Post-test Artistic Development', + 'Post-test Score', + 'Level of participation / Absence', + 'The main barriers affecting the daily attendance and performance of the child or drop out of school?', + 'Based on the overall score, what is the recommended learning path?', + 'cycle_completed', + 'enrolled_at_school', + + 'Referral programme type 1', + 'Referral partner 1', + 'Referral date 1', + 'Referral confirmation date 1', + + 'Referral programme type 2', + 'Referral partner 2', + 'Referral date 2', + 'Referral confirmation date 2', + + 'Referral programme type 3', + 'Referral partner 3', + 'Referral date 3', + 'Referral confirmation date 3', + + 'Follow-up call 1 date', + 'Follow-up call 1 reason', + 'Follow-up call 1 result', + + 'Follow-up call 2 date', + 'Follow-up call 2 reason', + 'Follow-up call 2 result', + + 'Follow-up visit 1 date', + 'Follow-up visit 1 reason', + 'Follow-up visit 1 result', + + 'First time registered?', + 'Student outreached?', + 'Have barcode with him?', + 'owner', + 'modified_by', + 'created', + 'modified' + ) + field_list = ( + 'id', + 'partner__name', + 'source_of_identification', + 'first_attendance_date', + 'round__name', + 'governorate__name_en', + 'district__name_en', + 'location', + 'language', + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__sex', + 'student__birthday_day', + 'student__birthday_month', + 'student__birthday_year', + 'student__nationality__name', + 'student__mother_fullname', + 'student__p_code', + 'student__id_number', + 'student__number', + 'student__family_status', + 'student__have_children', + 'disability__name_en', + 'internal_number', + 'comments', + + 'phone_number', + 'phone_number_confirm', + + 'id_type', + 'case_number', + 'case_number_confirm', + 'individual_case_number', + 'individual_case_number_confirm', + 'parent_individual_case_number', + 'parent_individual_case_number_confirm', + 'recorded_number', + 'recorded_number_confirm', + 'national_number', + 'national_number_confirm', + 'syrian_national_number', + 'syrian_national_number_confirm', + 'sop_national_number', + 'sop_national_number_confirm', + 'parent_national_number', + 'parent_national_number_confirm', + 'parent_syrian_national_number', + 'parent_syrian_national_number_confirm', + 'parent_sop_national_number', + 'parent_sop_national_number_confirm', + 'caretaker_first_name', + 'caretaker_middle_name', + 'caretaker_last_name', + 'caretaker_mother_name', + + 'hh_educational_level__name', + 'father_educational_level__name', + 'have_labour', + 'labours', + 'labour_hours', + + 'unsuccessful_pretest_reason', + 'unsuccessful_posttest_reason', + + 'pre_test_arabic', + 'post_test_arabic', + 'pre_test_foreign_language', + 'post_test_foreign_language', + 'pre_test_math', + 'post_test_math', + 'pre_test_social_emotional', + 'post_test_social_emotional', + 'pre_test_psychomotor', + 'post_test_psychomotor', + 'pre_test_artistic', + 'post_test_artistic', + 'pre_test_score', + 'post_test_score', + + 'participation', + 'barriers', + 'learning_result', + 'cycle_completed', + 'enrolled_at_school', + + 'referral_programme_type_1', + 'referral_partner_1', + 'referral_date_1', + 'confirmation_date_1', + + 'referral_programme_type_2', + 'referral_partner_2', + 'referral_date_2', + 'confirmation_date_2', + + 'referral_programme_type_3', + 'referral_partner_3', + 'referral_date_3', + 'confirmation_date_3', + + 'followup_call_date_1', + 'followup_call_reason_1', + 'followup_call_result_1', + + 'followup_call_date_2', + 'followup_call_reason_2', + 'followup_call_result_2', + + 'followup_visit_date_1', + 'followup_visit_reason_1', + 'followup_visit_result_1', + + 'new_registry', + 'student_outreached', + 'have_barcode', + 'owner__username', + 'modified_by__username', + 'created', + 'modified', + ) qs = self.get_queryset().extra(select={ + # 'participation': "CONCAT(participation, '_absence')", + 'pre_test_arabic': "pre_test->>'BLN_ASSESSMENT/arabic'", 'pre_test_foreign_language': "pre_test->>'BLN_ASSESSMENT/foreign_language'", 'pre_test_math': "pre_test->>'BLN_ASSESSMENT/math'", + 'pre_test_social_emotional': "pre_test->>'BLN_ASSESSMENT/social_emotional'", + 'pre_test_psychomotor': "pre_test->>'BLN_ASSESSMENT/psychomotor'", + 'pre_test_artistic': "pre_test->>'BLN_ASSESSMENT/artistic'", + 'post_test_arabic': "post_test->>'BLN_ASSESSMENT/arabic'", 'post_test_foreign_language': "post_test->>'BLN_ASSESSMENT/foreign_language'", 'post_test_math': "post_test->>'BLN_ASSESSMENT/math'", + 'post_test_social_emotional': "post_test->>'BLN_ASSESSMENT/social_emotional'", + 'post_test_psychomotor': "post_test->>'BLN_ASSESSMENT/psychomotor'", + 'post_test_artistic': "post_test->>'BLN_ASSESSMENT/artistic'", }).values( + 'id', 'partner__name', + 'first_attendance_date', 'round__name', - 'governorate__name', - 'district__name', + 'governorate__name_en', + 'district__name_en', 'location', 'language', 'student__first_name', @@ -930,24 +1799,35 @@ def get(self, request, *args, **kwargs): 'student__number', 'student__family_status', 'student__have_children', - 'disability__name', + 'disability__name_en', 'internal_number', 'comments', 'hh_educational_level__name', + 'father_educational_level__name', 'have_labour', 'labours', 'labour_hours', + 'unsuccessful_pretest_reason', + 'unsuccessful_posttest_reason', 'pre_test_arabic', 'pre_test_foreign_language', 'pre_test_math', + 'pre_test_social_emotional', + 'pre_test_psychomotor', + 'pre_test_artistic', 'pre_test_score', 'post_test_arabic', 'post_test_foreign_language', 'post_test_math', + 'post_test_social_emotional', + 'post_test_psychomotor', + 'post_test_artistic', 'post_test_score', 'participation', 'barriers', 'learning_result', + 'cycle_completed', + 'enrolled_at_school', 'new_registry', 'student_outreached', 'have_barcode', @@ -955,9 +1835,556 @@ def get(self, request, *args, **kwargs): 'modified_by__username', 'created', 'modified', + + 'phone_number', + 'phone_number_confirm', + 'id_type', + 'case_number', + 'case_number_confirm', + 'individual_case_number', + 'individual_case_number_confirm', + 'parent_individual_case_number', + 'parent_individual_case_number_confirm', + 'recorded_number', + 'recorded_number_confirm', + 'national_number', + 'national_number_confirm', + 'syrian_national_number', + 'syrian_national_number_confirm', + 'sop_national_number', + 'sop_national_number_confirm', + 'parent_national_number', + 'parent_national_number_confirm', + 'parent_syrian_national_number', + 'parent_syrian_national_number_confirm', + 'parent_sop_national_number', + 'parent_sop_national_number_confirm', + 'source_of_identification', + 'caretaker_first_name', + 'caretaker_middle_name', + 'caretaker_last_name', + 'caretaker_mother_name', + + 'referral_programme_type_1', + 'referral_partner_1', + 'referral_date_1', + 'confirmation_date_1', + 'referral_programme_type_2', + 'referral_partner_2', + 'referral_date_2', + 'confirmation_date_2', + 'referral_programme_type_3', + 'referral_partner_3', + 'referral_date_3', + 'confirmation_date_3', + + 'followup_call_date_1', + 'followup_call_reason_1', + 'followup_call_result_1', + 'followup_call_date_2', + 'followup_call_reason_2', + 'followup_call_result_2', + 'followup_visit_date_1', + 'followup_visit_reason_1', + 'followup_visit_result_1', ) - return render_to_csv_response(qs, field_header_map=headers) + return render_to_csv_response(qs, field_header_map=headers, field_order=field_list) + + +class ABLNExportViewSet(LoginRequiredMixin, ListView): + + model = ABLN + queryset = ABLN.objects.all() + + def get_queryset(self): + if not self.request.user.is_staff: + return self.queryset.filter(partner=self.request.user.partner) + return self.queryset + + def get(self, request, *args, **kwargs): + + headers = { + 'id': 'enropllment_id', + 'partner__name': 'Partner', + 'source_of_identification': 'Source of Identification', + 'first_attendance_date': 'first attendance date', + 'round__name': 'CLM Round', + 'governorate__name_en': 'Governorate', + 'district__name_en': 'District', + 'location': 'Location', + 'language': 'The language supported in the program', + 'student__first_name': 'First name', + 'student__father_name': 'Father name', + 'student__last_name': 'Last name', + 'student__sex': 'Sex', + 'student__birthday_day': 'Birthday - day', + 'student__birthday_month': 'Birthday - month', + 'student__birthday_year': 'Birthday - year', + 'student__nationality__name': 'Nationality', + 'student__mother_fullname': 'Mother fullname', + 'student__p_code': 'P-Code If a child lives in a tent / Brax in a random camp', + 'student__id_number': 'ID number', + 'student__number': 'unique number', + 'student__family_status': 'What is the family status of the child?', + 'student__have_children': 'Does the child have children?', + 'disability__name_en': 'Does the child have any disability or special need?', + 'internal_number': 'Internal number', + 'comments': 'Comments', + + 'phone_number': 'Phone number', + 'phone_number_confirm': 'Phone number confirm', + + 'id_type': 'ID Type', + 'case_number': 'UNHCR case number', + 'case_number_confirm': 'UNHCR case number confirm', + 'individual_case_number': 'Child individual ID', + 'individual_case_number_confirm': 'Child individual ID confirm', + 'parent_individual_case_number': 'Parent individual ID', + 'parent_individual_case_number_confirm': 'Parent individual ID confirm', + 'recorded_number': 'UNHCR recorded barcode', + 'recorded_number_confirm': 'UNHCR recorded barcode confirm', + 'national_number': 'Child Lebanese ID number', + 'national_number_confirm': 'Child Lebanese ID number confirm', + 'syrian_national_number': 'Child Syrian ID number', + 'syrian_national_number_confirm': 'Child Syrian ID number confirm', + 'sop_national_number': 'Child Palestinian ID number', + 'sop_national_number_confirm': 'Child Palestinian ID number confirm', + 'parent_national_number': 'Parent Lebanese ID number', + 'parent_national_number_confirm': 'Parent Lebanese ID number confirm', + 'parent_syrian_national_number': 'Parent Syrian ID number', + 'parent_syrian_national_number_confirm': 'Parent Syrian ID number confirm', + 'parent_sop_national_number': 'Parent Palestinian ID number', + 'parent_sop_national_number_confirm': 'Parent Palestinian ID number confirm', + 'caretaker_first_name': 'Caretaker first name', + 'caretaker_middle_name': 'Caretaker middle name', + 'caretaker_last_name': 'Caretaker last name', + 'caretaker_mother_name': 'Caretaker mother name', + + 'hh_educational_level__name': 'What is the educational level of the mother?', + 'father_educational_level__name': 'What is the educational level of the father?', + 'have_labour': 'Does the child participate in work?', + 'labours': 'What is the type of work?', + 'labour_hours': 'How many hours does this child work in a day?', + + 'unsuccessful_pretest_reason': 'Reason why not doing the Pre-test', + 'unsuccessful_posttest_reason': 'Reason why not doing the Post-test', + + 'pre_test_arabic': 'Pre-test Arabic Language Development ', + 'pre_test_math': 'Pre-test Cognitive Development - Mathematics', + 'pre_test_social_emotional': 'Pre-test Social-Emotional Development', + 'pre_test_psychomotor': 'Pre-test Psychomotor Development for children with special need', + 'pre_test_artistic': 'Pre-test Artistic Development', + 'pre_test_score': 'Pre-test score', + 'post_test_arabic': 'Post-test Arabic Language Development ', + 'post_test_math': 'Post-test Cognitive Development - Mathematics', + 'post_test_social_emotional': 'Post-test Social-Emotional Development', + 'post_test_psychomotor': 'Post-test Psychomotor Development for children with special need', + 'post_test_artistic': 'Post-test Artistic Development', + 'post_test_score': 'Post-test Score', + 'participation': 'Level of participation / Absence', + 'barriers': 'The main barriers affecting the daily attendance and performance of the child or drop out of school?', + 'learning_result': 'Based on the overall score, what is the recommended learning path?', + 'new_registry': 'First time registered?', + 'student_outreached': 'Student outreached?', + 'have_barcode': 'Have barcode with him?', + 'owner__username': 'owner', + 'modified_by__username': 'modified_by', + 'created': 'created', + 'modified': 'modified', + + 'referral_programme_type_1': 'Referral programme type 1', + 'referral_partner_1': 'Referral partner 1', + 'referral_date_1': 'Referral date 1', + 'confirmation_date_1': 'Referral confirmation date 1', + + 'referral_programme_type_2': 'Referral programme type 2', + 'referral_partner_2': 'Referral partner 2', + 'referral_date_2': 'Referral date 2', + 'confirmation_date_2': 'Referral confirmation date 2', + + 'referral_programme_type_3': 'Referral programme type 3', + 'referral_partner_3': 'Referral partner 3', + 'referral_date_3': 'Referral date 3', + 'confirmation_date_3': 'Referral confirmation date 3', + + 'followup_call_date_1': 'Follow-up call 1 date', + 'followup_call_reason_1': 'Follow-up call 1 reason', + 'followup_call_result_1': 'Follow-up call 1 result', + + 'followup_call_date_2': 'Follow-up call 2 date', + 'followup_call_reason_2': 'Follow-up call 2 reason', + 'followup_call_result_2': 'Follow-up call 2 result', + + 'followup_visit_date_1': 'Follow-up visit 1 date', + 'followup_visit_reason_1': 'Follow-up visit 1 reason', + 'followup_visit_result_1': 'Follow-up visit 1 result', + } + header_list = ( + 'enropllment_id', + 'Partner', + 'Source of Identification', + 'first attendance date', + 'CLM Round', + 'Governorate', + 'District', + 'Location', + 'The language supported in the program', + 'First name', + 'Father name', + 'Last name', + 'Sex', + 'Birthday - day', + 'Birthday - month', + 'Birthday - year', + 'Nationality', + 'Mother fullname', + 'P-Code If a child lives in a tent / Brax in a random camp', + 'ID number', + 'unique number', + 'What is the family status of the child?', + 'Does the child have children?', + 'Does the child have any disability or special need?', + 'Internal number', + 'Comments', + + 'Phone number', + 'Phone number confirm', + + 'ID Type', + 'UNHCR case number', + 'UNHCR case number confirm', + 'Child individual ID', + 'Child individual ID confirm', + 'Parent individual ID', + 'Parent individual ID confirm', + 'UNHCR recorded barcode', + 'UNHCR recorded barcode confirm', + 'Child Lebanese ID number', + 'Child Lebanese ID number confirm', + 'Child Syrian ID number', + 'Child Syrian ID number confirm', + 'Child Palestinian ID number', + 'Child Palestinian ID number confirm', + 'Parent Lebanese ID number', + 'Parent Lebanese ID number confirm', + 'Parent Syrian ID number', + 'Parent Syrian ID number confirm', + 'Parent Palestinian ID number', + 'Parent Palestinian ID number confirm', + 'Caretaker first name', + 'Caretaker middle name', + 'Caretaker last name', + 'Caretaker mother name', + + 'What is the educational level of a person who is valuable to the child?', + 'Does the child participate in work?', + 'What is the type of work?', + 'How many hours does this child work in a day?', + + 'Reason why not doing the Pre-test', + 'Reason why not doing the Post-test', + + 'Pre-test Arabic Language Development ', + 'Pre-test Cognitive Development - Mathematics', + 'Pre-test Social-Emotional Development', + 'Pre-test Psychomotor Development for children with special need', + 'Pre-test Artistic Development', + 'Pre-test score', + 'Post-test Arabic Language Development ', + 'Post-test Cognitive Development - Mathematics', + 'Post-test Social-Emotional Development', + 'Post-test Psychomotor Development for children with special need', + 'Post-test Artistic Development', + 'Post-test Score', + 'Level of participation / Absence', + 'The main barriers affecting the daily attendance and performance of the child or drop out of school?', + 'Based on the overall score, what is the recommended learning path?', + 'cycle_completed', + 'enrolled_at_school', + + 'Referral programme type 1', + 'Referral partner 1', + 'Referral date 1', + 'Referral confirmation date 1', + + 'Referral programme type 2', + 'Referral partner 2', + 'Referral date 2', + 'Referral confirmation date 2', + + 'Referral programme type 3', + 'Referral partner 3', + 'Referral date 3', + 'Referral confirmation date 3', + + 'Follow-up call 1 date', + 'Follow-up call 1 reason', + 'Follow-up call 1 result', + + 'Follow-up call 2 date', + 'Follow-up call 2 reason', + 'Follow-up call 2 result', + + 'Follow-up visit 1 date', + 'Follow-up visit 1 reason', + 'Follow-up visit 1 result', + + 'First time registered?', + 'Student outreached?', + 'Have barcode with him?', + 'owner', + 'modified_by', + 'created', + 'modified' + ) + field_list = ( + 'id', + 'partner__name', + 'source_of_identification', + 'first_attendance_date', + 'round__name', + 'governorate__name_en', + 'district__name_en', + 'location', + 'language', + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__sex', + 'student__birthday_day', + 'student__birthday_month', + 'student__birthday_year', + 'student__nationality__name', + 'student__mother_fullname', + 'student__p_code', + 'student__id_number', + 'student__number', + 'student__family_status', + 'student__have_children', + 'disability__name_en', + 'internal_number', + 'comments', + + 'phone_number', + 'phone_number_confirm', + + 'id_type', + 'case_number', + 'case_number_confirm', + 'individual_case_number', + 'individual_case_number_confirm', + 'parent_individual_case_number', + 'parent_individual_case_number_confirm', + 'recorded_number', + 'recorded_number_confirm', + 'national_number', + 'national_number_confirm', + 'syrian_national_number', + 'syrian_national_number_confirm', + 'sop_national_number', + 'sop_national_number_confirm', + 'parent_national_number', + 'parent_national_number_confirm', + 'parent_syrian_national_number', + 'parent_syrian_national_number_confirm', + 'parent_sop_national_number', + 'parent_sop_national_number_confirm', + 'caretaker_first_name', + 'caretaker_middle_name', + 'caretaker_last_name', + 'caretaker_mother_name', + + 'hh_educational_level__name', + 'father_educational_level__name', + 'have_labour', + 'labours', + 'labour_hours', + + 'unsuccessful_pretest_reason', + 'unsuccessful_posttest_reason', + + 'pre_test_arabic', + 'post_test_arabic', + 'pre_test_math', + 'post_test_math', + 'pre_test_social_emotional', + 'post_test_social_emotional', + 'pre_test_psychomotor', + 'post_test_psychomotor', + 'pre_test_artistic', + 'post_test_artistic', + 'pre_test_score', + 'post_test_score', + + 'participation', + 'barriers', + 'learning_result', + 'cycle_completed', + 'enrolled_at_school', + + 'referral_programme_type_1', + 'referral_partner_1', + 'referral_date_1', + 'confirmation_date_1', + + 'referral_programme_type_2', + 'referral_partner_2', + 'referral_date_2', + 'confirmation_date_2', + + 'referral_programme_type_3', + 'referral_partner_3', + 'referral_date_3', + 'confirmation_date_3', + + 'followup_call_date_1', + 'followup_call_reason_1', + 'followup_call_result_1', + + 'followup_call_date_2', + 'followup_call_reason_2', + 'followup_call_result_2', + + 'followup_visit_date_1', + 'followup_visit_reason_1', + 'followup_visit_result_1', + + 'new_registry', + 'student_outreached', + 'have_barcode', + 'owner__username', + 'modified_by__username', + 'created', + 'modified', + ) + + qs = self.get_queryset().extra(select={ + # 'participation': "CONCAT(participation, '_absence')", + + 'pre_test_arabic': "pre_test->>'ABLN_ASSESSMENT/arabic'", + 'pre_test_math': "pre_test->>'ABLN_ASSESSMENT/math'", + 'pre_test_social_emotional': "pre_test->>'ABLN_ASSESSMENT/social_emotional'", + 'pre_test_psychomotor': "pre_test->>'ABLN_ASSESSMENT/psychomotor'", + 'pre_test_artistic': "pre_test->>'ABLN_ASSESSMENT/artistic'", + + 'post_test_arabic': "post_test->>'ABLN_ASSESSMENT/arabic'", + 'post_test_math': "post_test->>'ABLN_ASSESSMENT/math'", + 'post_test_social_emotional': "post_test->>'ABLN_ASSESSMENT/social_emotional'", + 'post_test_psychomotor': "post_test->>'ABLN_ASSESSMENT/psychomotor'", + 'post_test_artistic': "post_test->>'ABLN_ASSESSMENT/artistic'", + }).values( + 'id', + 'partner__name', + 'first_attendance_date', + 'round__name', + 'governorate__name_en', + 'district__name_en', + 'location', + 'language', + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__sex', + 'student__birthday_day', + 'student__birthday_month', + 'student__birthday_year', + 'student__nationality__name', + 'student__mother_fullname', + 'student__p_code', + 'student__id_number', + 'student__number', + 'student__family_status', + 'student__have_children', + 'disability__name_en', + 'internal_number', + 'comments', + 'hh_educational_level__name', + 'father_educational_level__name', + 'have_labour', + 'labours', + 'labour_hours', + 'unsuccessful_pretest_reason', + 'unsuccessful_posttest_reason', + 'pre_test_arabic', + 'pre_test_math', + 'pre_test_social_emotional', + 'pre_test_psychomotor', + 'pre_test_artistic', + 'pre_test_score', + 'post_test_arabic', + 'post_test_math', + 'post_test_social_emotional', + 'post_test_psychomotor', + 'post_test_artistic', + 'post_test_score', + 'participation', + 'barriers', + 'learning_result', + 'cycle_completed', + 'enrolled_at_school', + 'new_registry', + 'student_outreached', + 'have_barcode', + 'owner__username', + 'modified_by__username', + 'created', + 'modified', + + 'phone_number', + 'phone_number_confirm', + 'id_type', + 'case_number', + 'case_number_confirm', + 'individual_case_number', + 'individual_case_number_confirm', + 'parent_individual_case_number', + 'parent_individual_case_number_confirm', + 'recorded_number', + 'recorded_number_confirm', + 'national_number', + 'national_number_confirm', + 'syrian_national_number', + 'syrian_national_number_confirm', + 'sop_national_number', + 'sop_national_number_confirm', + 'parent_national_number', + 'parent_national_number_confirm', + 'parent_syrian_national_number', + 'parent_syrian_national_number_confirm', + 'parent_sop_national_number', + 'parent_sop_national_number_confirm', + 'source_of_identification', + 'caretaker_first_name', + 'caretaker_middle_name', + 'caretaker_last_name', + 'caretaker_mother_name', + + 'referral_programme_type_1', + 'referral_partner_1', + 'referral_date_1', + 'confirmation_date_1', + 'referral_programme_type_2', + 'referral_partner_2', + 'referral_date_2', + 'confirmation_date_2', + 'referral_programme_type_3', + 'referral_partner_3', + 'referral_date_3', + 'confirmation_date_3', + + 'followup_call_date_1', + 'followup_call_reason_1', + 'followup_call_result_1', + 'followup_call_date_2', + 'followup_call_reason_2', + 'followup_call_result_2', + 'followup_visit_date_1', + 'followup_visit_reason_1', + 'followup_visit_result_1', + ) + + return render_to_csv_response(qs, field_header_map=headers, field_order=field_list) class RSExportViewSet(LoginRequiredMixin, ListView): @@ -978,8 +2405,8 @@ def get(self, request, *args, **kwargs): 'type': 'Program type', 'site': 'Program site', 'school__name': 'Attending in school', - 'governorate__name': 'Governorate', - 'district__name': 'District', + 'governorate__name_en': 'Governorate', + 'district__name_en': 'District', 'location': 'Location', 'language': 'The language supported in the program', 'student__first_name': 'First name', @@ -996,7 +2423,7 @@ def get(self, request, *args, **kwargs): 'student__number': 'unique number', 'student__family_status': 'What is the family status of the child?', 'student__have_children': 'Does the child have children?', - 'disability__name': 'Does the child have any disability or special need?', + 'disability__name_en': 'Does the child have any disability or special need?', 'internal_number': 'Internal number', 'comments': 'Comments', 'hh_educational_level__name': 'What is the educational level of a person who is valuable to the child?', @@ -1077,7 +2504,7 @@ def get(self, request, *args, **kwargs): 'post_self_q13': ' يصغي اليّ أستاذي باهتمام عندما أتحدث - Self Assessment - Post', 'post_self_q14': 'عندما أكون بحاجة إلى المساعدة أحصل عليها من معلمي - Self Assessment - Post', - 'participation': 'How was the level of child participation in the program?', + 'participation': 'Level of participation / Absence', 'barriers': 'The main barriers affecting the daily attendance and performance of the child or drop out of school?', 'learning_result': 'Based on the overall score, what is the recommended learning path?', 'new_registry': 'First time registered?', @@ -1088,6 +2515,8 @@ def get(self, request, *args, **kwargs): } qs = self.get_queryset().extra(select={ + # 'participation': "CONCAT(participation, '_absence')", + 'pre_strategy_q1': "pre_test->>'RS_ASSESSMENT/FL1'", 'pre_strategy_q2': "pre_test->>'RS_ASSESSMENT/FL2'", 'pre_strategy_q3': "pre_test->>'RS_ASSESSMENT/FL3'", @@ -1144,8 +2573,8 @@ def get(self, request, *args, **kwargs): 'type', 'site', 'school__name', - 'governorate__name', - 'district__name', + 'governorate__name_en', + 'district__name_en', 'location', 'language', 'student__first_name', @@ -1162,7 +2591,7 @@ def get(self, request, *args, **kwargs): 'student__number', 'student__family_status', 'student__have_children', - 'disability__name', + 'disability__name_en', 'internal_number', 'comments', 'hh_educational_level__name', @@ -1278,8 +2707,8 @@ def get(self, request, *args, **kwargs): 'cycle__name': 'Level', 'site': 'Program site', 'school__name': 'Attending in school', - 'governorate__name': 'Governorate', - 'district__name': 'District', + 'governorate__name_en': 'Governorate', + 'district__name_en': 'District', 'location': 'Location', 'language': 'The language supported in the program', 'referral': 'Where was the child referred?', @@ -1298,7 +2727,7 @@ def get(self, request, *args, **kwargs): 'student__number': 'unique number', 'student__family_status': 'What is the family status of the child?', 'student__have_children': 'Does the child have children?', - 'disability__name': 'Does the child have any disability or special need?', + 'disability__name_en': 'Does the child have any disability or special need?', 'internal_number': 'Internal number', 'comments': 'Comments', 'child_muac': 'Child MUAC', @@ -1311,51 +2740,76 @@ def get(self, request, *args, **kwargs): 'pre_test_score': 'Academic Result - Pre', 'post_test_score': 'Academic Result - Post', - 'pre_test_LanguageArtDomain1': 'Language Art Domain - Pre - Level 1', - 'pre_test_CognitiveDomian1': 'Cognitive Domain - Pre - Level 1', - 'pre_test_ScienceDomain1': 'Science Domain - Pre - Level 1', - 'pre_test_SocialEmotionalDomain1': 'Social Emotional Domain - Pre - Level 1', - 'pre_test_PsychomotorDomain1': 'Psychomotor Domain - Pre - Level 1', - 'pre_test_ArtisticDomain1': 'Artistic Domain - Pre - Level 1', - - 'post_test_LanguageArtDomain1': 'Language Art Domain - Post - Level 1', - 'post_test_CognitiveDomian1': 'Cognitive Domain - Post - Level 1', - 'post_test_ScienceDomain1': 'Science Domain - Post - Level 1', - 'post_test_SocialEmotionalDomain1': 'Social Emotional Domain - Post - Level 1', - 'post_test_PsychomotorDomain1': 'Psychomotor Domain - Post - Level 1', - 'post_test_ArtisticDomain1': 'Artistic Domain - Post - Level 1', - - 'pre_test_LanguageArtDomain2': 'Language Art Domain - Pre - Level 2', - 'pre_test_CognitiveDomian2': 'Cognitive Domain - Pre - Level 2', - 'pre_test_ScienceDomain2': 'Science Domain - Pre - Level 2', - 'pre_test_SocialEmotionalDomain2': 'Social Emotional Domain - Pre - Level 2', - 'pre_test_PsychomotorDomain2': 'Psychomotor Domain - Pre - Level 2', - 'pre_test_ArtisticDomain2': 'Artistic Domain - Pre - Level 2', - - 'post_test_LanguageArtDomain2': 'Language Art Domain - Post - Level 2', - 'post_test_CognitiveDomian2': 'Cognitive Domain - Post - Level 2', - 'post_test_ScienceDomain2': 'Science Domain - Post - Level 2', - 'post_test_SocialEmotionalDomain2': 'Social Emotional Domain - Post - Level 2', - 'post_test_PsychomotorDomain2': 'Psychomotor Domain - Post - Level 2', - 'post_test_ArtisticDomain2': 'Artistic Domain - Post - Level 2', - - 'pre_test_LanguageArtDomain3': 'Language Art Domain - Pre - Level 3', - 'pre_test_CognitiveDomian3': 'Cognitive Domain - Pre - Level 3', - 'pre_test_ScienceDomain3': 'Science Domain - Pre - Level 3', - 'pre_test_SocialEmotionalDomain3': 'Social Emotional Domain - Pre - Level 3', - 'pre_test_PsychomotorDomain3': 'Psychomotor Domain - Pre - Level 3', - 'pre_test_ArtisticDomain3': 'Artistic Domain - Pre - Level 3', - - 'post_test_LanguageArtDomain3': 'Language Art Domain - Post - Level 3', - 'post_test_CognitiveDomian3': 'Cognitive Domain - Post - Level 3', - 'post_test_ScienceDomain3': 'Science Domain - Post - Level 3', - 'post_test_SocialEmotionalDomain3': 'Social Emotional Domain - Post - Level 3', - 'post_test_PsychomotorDomain3': 'Psychomotor Domain - Post - Level 3', - 'post_test_ArtisticDomain3': 'Artistic Domain - Post - Level 3', - - 'participation': 'How was the level of child participation in the program?', + 'pre_test_LanguageArtDomain1': 'Language Development - Pre - Level 1', + 'post_test_LanguageArtDomain1': 'Language Development - Post - Level 1', + 'pre_test_CognitiveDomian1': 'Cognitive Development - Mathematics - Pre - Level 1', + 'post_test_CognitiveDomian1': 'Cognitive Development - Mathematics - Post - Level 1', + 'pre_test_ScienceDomain1': 'Science Development - Science - Pre - Level 1', + 'post_test_ScienceDomain1': 'Science Development - Science - Post - Level 1', + 'pre_test_SocialEmotionalDomain1': 'Social-Emotional Development - Pre - Level 1', + 'post_test_SocialEmotionalDomain1': 'Social-Emotional Development - Post - Level 1', + 'pre_test_PsychomotorDomain1': 'Psychomotor Development - Pre - Level 1', + 'post_test_PsychomotorDomain1': 'Psychomotor Development - Post - Level 1', + 'pre_test_ArtisticDomain1': 'Artistic Development - Pre - Level 1', + 'post_test_ArtisticDomain1': 'Artistic Development - Post - Level 1', + + 'pre_test_LanguageArtDomain2': 'Language Development - Pre - Level 2', + 'post_test_LanguageArtDomain2': 'Language Development - Post - Level 2', + 'pre_test_CognitiveDomian2': 'Cognitive Development - Mathematics - Pre - Level 2', + 'post_test_CognitiveDomian2': 'Cognitive Development - Mathematics - Post - Level 2', + 'pre_test_ScienceDomain2': 'Science Development - Science - Pre - Level 2', + 'post_test_ScienceDomain2': 'Science Development - Science - Post - Level 2', + 'pre_test_SocialEmotionalDomain2': 'Social-Emotional Development - Pre - Level 2', + 'post_test_SocialEmotionalDomain2': 'Social-Emotional Development - Post - Level 2', + 'pre_test_PsychomotorDomain2': 'Psychomotor Development - Pre - Level 2', + 'post_test_PsychomotorDomain2': 'Psychomotor Development - Post - Level 2', + 'pre_test_ArtisticDomain2': 'Artistic Development - Pre - Level 2', + 'post_test_ArtisticDomain2': 'Artistic Development - Post - Level 2', + + 'pre_test_LanguageArtDomain3': 'Language Development - Pre - Level 3', + 'post_test_LanguageArtDomain3': 'Language Development - Post - Level 3', + 'pre_test_CognitiveDomian3': 'Cognitive Development - Mathematics - Pre - Level 3', + 'post_test_CognitiveDomian3': 'Cognitive Development - Mathematics - Post - Level 3', + 'pre_test_ScienceDomain3': 'Science Development - Science - Pre - Level 3', + 'post_test_ScienceDomain3': 'Science Development - Science - Post - Level 3', + 'pre_test_SocialEmotionalDomain3': 'Social-Emotional Development - Pre - Level 3', + 'post_test_SocialEmotionalDomain3': 'Social-Emotional Development - Post - Level 3', + 'pre_test_PsychomotorDomain3': 'Psychomotor Development - Pre - Level 3', + 'post_test_PsychomotorDomain3': 'Psychomotor Development - Post - Level 3', + 'pre_test_ArtisticDomain3': 'Artistic Development - Pre - Level 3', + 'post_test_ArtisticDomain3': 'Artistic Development - Post - Level 3', + + 'participation': 'Level of participation / Absence', 'barriers': 'The main barriers affecting the daily attendance and performance of the child or drop out of school?', 'learning_result': 'Based on the overall score, what is the recommended learning path?', + + 'referral_programme_type_1': 'Referral programme type 1', + 'referral_partner_1': 'Referral partner 1', + 'referral_date_1': 'Referral date 1', + 'confirmation_date_1': 'Referral confirmation date 1', + + 'referral_programme_type_2': 'Referral programme type 2', + 'referral_partner_2': 'Referral partner 2', + 'referral_date_2': 'Referral date 2', + 'confirmation_date_2': 'Referral confirmation date 2', + + 'referral_programme_type_3': 'Referral programme type 3', + 'referral_partner_3': 'Referral partner 3', + 'referral_date_3': 'Referral date 3', + 'confirmation_date_3': 'Referral confirmation date 3', + + 'followup_call_date_1': 'Follow-up call 1 date', + 'followup_call_reason_1': 'Follow-up call 1 reason', + 'followup_call_result_1': 'Follow-up call 1 result', + + 'followup_call_date_2': 'Follow-up call 2 date', + 'followup_call_reason_2': 'Follow-up call 2 reason', + 'followup_call_result_2': 'Follow-up call 2 result', + + 'followup_visit_date_1': 'Follow-up visit 1 date', + 'followup_visit_reason_1': 'Follow-up visit 1 reason', + 'followup_visit_result_1': 'Follow-up visit 1 result', + 'new_registry': 'First time registered?', 'student_outreached': 'Student outreached?', 'have_barcode': 'Have barcode with him?', @@ -1365,7 +2819,127 @@ def get(self, request, *args, **kwargs): 'modified': 'modified', } + field_list = ( + 'partner__name', + 'round__name', + 'cycle__name', + 'site', + 'school__name', + 'governorate__name_en', + 'district__name_en', + 'location', + 'language', + 'referral', + + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__sex', + 'student__birthday_day', + 'student__birthday_month', + 'student__birthday_year', + 'student__nationality__name', + 'student__mother_fullname', + 'student__p_code', + 'student__id_number', + 'student__number', + 'student__family_status', + 'student__have_children', + 'disability__name_en', + 'internal_number', + 'comments', + 'child_muac', + + 'hh_educational_level__name', + 'have_labour', + 'labours', + 'labour_hours', + + 'pre_test_score', + 'post_test_score', + + 'pre_test_LanguageArtDomain1', + 'post_test_LanguageArtDomain1', + 'pre_test_CognitiveDomian1', + 'post_test_CognitiveDomian1', + 'pre_test_ScienceDomain1', + 'post_test_ScienceDomain1', + 'pre_test_SocialEmotionalDomain1', + 'post_test_SocialEmotionalDomain1', + 'pre_test_PsychomotorDomain1', + 'post_test_PsychomotorDomain1', + 'pre_test_ArtisticDomain1', + 'post_test_ArtisticDomain1', + + 'pre_test_LanguageArtDomain2', + 'post_test_LanguageArtDomain2', + 'pre_test_CognitiveDomian2', + 'post_test_CognitiveDomian2', + 'pre_test_ScienceDomain2', + 'post_test_ScienceDomain2', + 'pre_test_SocialEmotionalDomain2', + 'post_test_SocialEmotionalDomain2', + 'pre_test_PsychomotorDomain2', + 'post_test_PsychomotorDomain2', + 'pre_test_ArtisticDomain2', + 'post_test_ArtisticDomain2', + + 'pre_test_LanguageArtDomain3', + 'post_test_LanguageArtDomain3', + 'pre_test_CognitiveDomian3', + 'post_test_CognitiveDomian3', + 'pre_test_ScienceDomain3', + 'post_test_ScienceDomain3', + 'pre_test_SocialEmotionalDomain3', + 'post_test_SocialEmotionalDomain3', + 'pre_test_PsychomotorDomain3', + 'post_test_PsychomotorDomain3', + 'pre_test_ArtisticDomain3', + 'post_test_ArtisticDomain3', + + 'participation', + 'barriers', + 'learning_result', + + 'referral_programme_type_1', + 'referral_partner_1', + 'referral_date_1', + 'confirmation_date_1', + + 'referral_programme_type_2', + 'referral_partner_2', + 'referral_date_2', + 'confirmation_date_2', + + 'referral_programme_type_3', + 'referral_partner_3', + 'referral_date_3', + 'confirmation_date_3', + + 'followup_call_date_1', + 'followup_call_reason_1', + 'followup_call_result_1', + + 'followup_call_date_2', + 'followup_call_reason_2', + 'followup_call_result_2', + + 'followup_visit_date_1', + 'followup_visit_reason_1', + 'followup_visit_result_1', + + 'new_registry', + 'student_outreached', + 'have_barcode', + 'owner__username', + 'modified_by__username', + 'created', + 'modified', + ) + qs = self.get_queryset().extra(select={ + # 'participation': "CONCAT(participation, '_absence')", + 'pre_test_LanguageArtDomain1': "pre_test->>'CBECE_ASSESSMENT/LanguageArtDomain1'", 'pre_test_CognitiveDomian1': "pre_test->>'CBECE_ASSESSMENT/CognitiveDomian1'", 'pre_test_ScienceDomain1': "pre_test->>'CBECE_ASSESSMENT/ScienceDomain1'", @@ -1414,8 +2988,8 @@ def get(self, request, *args, **kwargs): 'cycle__name', 'site', 'school__name', - 'governorate__name', - 'district__name', + 'governorate__name_en', + 'district__name_en', 'location', 'language', 'referral', @@ -1434,7 +3008,7 @@ def get(self, request, *args, **kwargs): 'student__number', 'student__family_status', 'student__have_children', - 'disability__name', + 'disability__name_en', 'internal_number', 'comments', 'child_muac', @@ -1492,6 +3066,34 @@ def get(self, request, *args, **kwargs): 'participation', 'barriers', 'learning_result', + + 'referral_programme_type_1', + 'referral_partner_1', + 'referral_date_1', + 'confirmation_date_1', + + 'referral_programme_type_2', + 'referral_partner_2', + 'referral_date_2', + 'confirmation_date_2', + + 'referral_programme_type_3', + 'referral_partner_3', + 'referral_date_3', + 'confirmation_date_3', + + 'followup_call_date_1', + 'followup_call_reason_1', + 'followup_call_result_1', + + 'followup_call_date_2', + 'followup_call_reason_2', + 'followup_call_result_2', + + 'followup_visit_date_1', + 'followup_visit_reason_1', + 'followup_visit_result_1', + 'new_registry', 'student_outreached', 'have_barcode', @@ -1501,4 +3103,55 @@ def get(self, request, *args, **kwargs): 'modified', ) - return render_to_csv_response(qs, field_header_map=headers) + return render_to_csv_response(qs, field_header_map=headers, field_order=field_list) + + +def load_districts(request): + from django.shortcuts import render + + id_governorate = request.GET.get('id_governorate') + cities = Location.objects.filter(parent_id=id_governorate).order_by('name') + return render(request, 'clm/city_dropdown_list_options.html', {'cities': cities}) + + +def search_clm_child(request): + clm_type = request.GET.get('clm_type', 'BLN') + terms = request.GET.get('term', 0) + model = BLN + if clm_type == 'RS': + model = RS + elif clm_type == 'ABLN': + model = ABLN + elif clm_type == 'CBECE': + model = CBECE + + qs = model.objects.filter(partner=request.user.partner_id) + + if terms: + for term in terms.split(): + qs = qs.filter( + Q(student__first_name__contains=term) | + Q(student__father_name__contains=term) | + Q(student__last_name__contains=term) | + Q(student__id_number=term) | + Q(internal_number=term) + ).values('id', 'student__first_name', 'student__father_name', + 'student__last_name', 'student__mother_fullname', + 'student__sex', 'student__birthday_day', 'student__birthday_month', + 'student__birthday_year', 'internal_number').distinct() + + return JsonResponse({'result': json.dumps(list(qs))}) + + +class ExecABLNUpdateView(LoginRequiredMixin, TemplateView): + + template_name = 'clm/execs.html' + + def get_context_data(self, **kwargs): + + instances = ABLN.objects.filter(round_id=8) + instances.update(round_id=9) + + return { + 'result': instances.count(), + } diff --git a/student_registration/dashboard/urls.py b/student_registration/dashboard/urls.py index 43a0b1299..f429f5818 100644 --- a/student_registration/dashboard/urls.py +++ b/student_registration/dashboard/urls.py @@ -6,6 +6,11 @@ from student_registration.dashboard.secondshift import views as secondshift urlpatterns = [ + url( + regex=r'^run-filling_data/$', + view=views.fill_data, + name='run-filling_data' + ), url( regex=r'^exporter/$', view=views.ExporterView.as_view(), @@ -16,6 +21,16 @@ view=views.RunExporterViewSet.as_view(), name='run-exporter' ), + url( + regex=r'^run-exporter-attendance/$', + view=views.run_attendance,# RunExporterAttendanceViewSet.as_view(), + name='run-exporter-attendance' + ), + url( + regex=r'^run-to-excel-per-day/$', + view=views.run_to_excel_per_day, + name='run-to-excel-per-day' + ), url( regex=r'^registrations-alp/$', view=views.RegistrationsALPView.as_view(), @@ -82,4 +97,69 @@ view=secondshift.SchoolNationalityView.as_view(), name='2ndshift_school_nationality' ), + url( + regex=r'^update_duplicatestd/$', + view=views.update_duplicatestd, + name='update_duplicatestd' + ), + url( + regex=r'^fix_dupstd/$', + view=views.fix_dupstd, + name='fix_dupstd' + ), + url( + regex=r'^dup_id_enr/$', + view=views.dup_id_enr, + name='dup_id_enr' + ), + url( + regex=r'^dup_nb_enr/$', + view=views.dup_nb_enr, + name='dup_nb_enr' + ), + url( + regex=r'^generate_pretest_result/$', + view=views.generate_pretest_result, + name='generate_pretest_result' + ), + url( + regex=r'^utilities/$', + view=views.View_Utilities.as_view(), + name='utilities' + ), + url( + regex=r'^run-list-justification/$', + view=views.List_Justification.as_view(), + name='run-list-justification' + ), + url( + regex=r'^run-list-justification-sec/$', + view=views.List_Justification_BySection.as_view(), + name='run-list-justification-sec' + ), + url( + regex=r'^run-generate-justification/$', + view=views.Generate_Justification_number, + name='run-generate-justification' + ), + url( + regex=r'^run-available-documents/$', + view=views.List_of_available_documents.as_view(), + name='run-available-documents' + ), + url( + regex=r'^degenerate-list-justification/$', + view=views.degenerate_list_justification, + name='degenerate-list-justification' + ), + url( + regex=r'^export-summary-attendance/$', + view=views.export_summary_of_Attendance, + name='export-summary-attendance' + ), + url( + regex=r'^evaluation/$', + view=views.generate_evaluation, + name='evaluation' + ), ] diff --git a/student_registration/dashboard/views.py b/student_registration/dashboard/views.py index 4575c3b18..f616984b9 100644 --- a/student_registration/dashboard/views.py +++ b/student_registration/dashboard/views.py @@ -1,14 +1,23 @@ # from django.http import HttpResponse # from django.template import loader # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals -import datetime +from __future__ import absolute_import, unicode_literals +from django.contrib.auth.models import User +from student_registration.backends.djqscsv import render_to_csv_response +from django.utils.translation import ugettext as _ +from django.contrib import messages +from django.shortcuts import render +from datetime import datetime from django.core.urlresolvers import reverse from django.http import HttpResponseForbidden -from django.views.generic import ListView, TemplateView +from django.views.generic import ListView, TemplateView, UpdateView from django.contrib.auth.mixins import LoginRequiredMixin from braces.views import GroupRequiredMixin, SuperuserRequiredMixin +from django.shortcuts import render +from django.contrib.auth.models import Group +from django.utils.translation import ugettext as _ +from import_export.formats import base_formats from student_registration.locations.models import ( Location, ) @@ -18,12 +27,17 @@ EducationLevel, ClassLevel, ClassRoom, + Evaluation, ) +import time +from django_tables2.export.export import TableExport +from student_registration.users.utils import force_default_language +from django.shortcuts import redirect from student_registration.alp.models import Outreach, ALPRound from student_registration.users.models import User from student_registration.backends.exporter import export_full_data - +import tablib class ExporterView(LoginRequiredMixin, GroupRequiredMixin, @@ -57,6 +71,329 @@ def get(self, request, *args, **kwargs): return export_full_data(self.request.GET) +def dup_id_enr(request, *args): + from student_registration.enrollments.models import Enrollment, DuplicateStd + + education_year = EducationYear.objects.get(current_year=True) + Q_Enr = Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, disabled=False, moved=False) + for q_enr in Q_Enr: + Q_If_Exist_Enr = Enrollment.objects.filter(education_year_id=education_year, student_id=q_enr.student_id, + school_id__isnull=False, moved=False, disabled=False, + school__is_2nd_shift=True).exclude(id=q_enr.id) + for q_if_exist_enr in Q_If_Exist_Enr: + Q_duplicatestd = DuplicateStd.objects.filter(enrollment_id=q_if_exist_enr.id, is_solved=False).count() + if Q_duplicatestd == 0: + model_duplicatestd = DuplicateStd.objects.create( + enrollment_id=q_if_exist_enr.id, + is_solved=False, + school_type='2ndshift', + owner=q_if_exist_enr.owner, + coordinator_id=q_if_exist_enr.school.coordinator_id, + Level_id=q_if_exist_enr.last_education_level_id, + section_id=q_if_exist_enr.section_id, + classroom_id=q_if_exist_enr.classroom_id, + education_year=education_year, + remark='SAME STUDENT ID', + ) + model_duplicatestd.save() + model_duplicatestd = DuplicateStd.objects.create( + enrollment_id=q_enr.id, + is_solved=False, + school_type='2ndshift', + owner=q_enr.owner, + coordinator_id=q_enr.school.coordinator_id, + Level_id=q_enr.last_education_level_id, + section_id=q_enr.section_id, + classroom_id=q_enr.classroom_id, + education_year=education_year, + remark='SAME STUDENT ID', + ) + model_duplicatestd.save() + context = {} + return render(request, "dashboard/exporter.html", context) + + +def dup_nb_enr(request, *args): + from student_registration.enrollments.models import Enrollment, DuplicateStd + from student_registration.students.models import Student + + education_year = EducationYear.objects.get(current_year=True) + Q_Enr = Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, disabled=False, moved=False) + for q_enr in Q_Enr: + Q_Std = Student.objects.get(id=q_enr.student_id) + v_count = 0 + Q_same_nb_Exist = Student.objects.filter(number=Q_Std.number) + std_list = [] + for q_same_nb_exist in Q_same_nb_Exist: + std_list.append(q_same_nb_exist.id) + v_count += 1 + if v_count > 1: + Q_If_Exist_Enr = Enrollment.objects.filter(education_year_id=education_year, student_id__in=std_list, + school_id__isnull=False, moved=False, disabled=False, + school__is_2nd_shift=True).exclude(id=q_enr.id) + for q_if_exist_enr in Q_If_Exist_Enr: + Q_duplicatestd = DuplicateStd.objects.filter(enrollment_id=q_if_exist_enr.id, is_solved=False).count() + if Q_duplicatestd == 0: + model_duplicatestd = DuplicateStd.objects.create( + enrollment_id=q_if_exist_enr.id, + is_solved=False, + school_type='2ndshift', + owner=q_if_exist_enr.owner, + coordinator_id=q_if_exist_enr.school.coordinator_id, + Level_id=q_if_exist_enr.last_education_level_id, + section_id=q_if_exist_enr.section_id, + classroom_id=q_if_exist_enr.classroom_id, + education_year=education_year, + remark='SAME STUDENT NUMBER', + ) + model_duplicatestd.save() + model_duplicatestd = DuplicateStd.objects.create( + enrollment_id=q_enr.id, + is_solved=False, + school_type='2ndshift', + owner=q_enr.owner, + coordinator_id=q_enr.school.coordinator_id, + Level_id=q_enr.last_education_level_id, + section_id=q_enr.section_id, + classroom_id=q_enr.classroom_id, + education_year=education_year, + remark='SAME STUDENT NUMBER', + ) + model_duplicatestd.save() + context = {} + return render(request, "dashboard/exporter.html", context) + + +def fix_dupstd(request, *args): + from student_registration.enrollments.models import DuplicateStd + education_year = EducationYear.objects.get(current_year=True) + + Q_duplicatestd = DuplicateStd.objects.all() + for q_duplicatestd in Q_duplicatestd: + q_duplicatestd.education_year = education_year + q_duplicatestd.save() + + context = {} + return render(request, "dashboard/exporter.html", context) + + +def update_duplicatestd(request): + from student_registration.enrollments.models import DuplicateStd, Enrollment + from student_registration.students.models import Student + + education_year = EducationYear.objects.get(current_year=True) + Q_duplicatestd = DuplicateStd.objects.filter(is_solved=False, education_year=education_year) + for q_duplicatestd in Q_duplicatestd: + Q_student = Student.objects.filter(number=q_duplicatestd.enrollment.student.number) + str = [] + for q_student in Q_student: + str.append(q_student.id) + + v_exist = Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, student_id__in=str, disabled=False).count() + if v_exist < 2: + q_duplicatestd.is_solved = True + q_duplicatestd.save() + + context = {} + return render(request, "dashboard/exporter.html", context) + + +def fill_data(request, *args): + from student_registration.enrollments.models import Enrollment + from student_registration.schools.models import ClassRoom + + T_Enrollment = Enrollment.objects.filter(created__gt='2019-10-9', created__lt='2019-10-11', school_id__isnull=True, + education_year_id__isnull=True)# classroom_id__isnull=True, + for T_Enr in T_Enrollment: + try: + last_enrollment = Enrollment.objects.filter(student_id=T_Enr.student_id, education_year_id=1).order_by('-created')[:1] + for line in last_enrollment: + T_Enr.school_id = line.school_id + T_Enr.education_year_id = 4 + + try: + last_class = ClassRoom.objects.filter(id__gt=line.classroom_id)[:1] + for v_class in last_class: + T_Enr.classroom_id = v_class.id + except ClassRoom.DoesNotExist: + False + T_Enr.owner_id = line.owner_id + T_Enr.save() + except Enrollment.DoesNotExist: + continue + context = {} + return render(request, "dashboard/exporter.html", context) + + +def run_attendance(request): + from student_registration.attendances.tasks import geo_calculate_attendances_by_student,\ + geo_calculate_last_attendance_date + from_school = request.GET['txtfromschool'] + to_school = request.GET['txttoschool'] + from_date = request.GET['txtfromdate'] + to_date = request.GET['txttodate'] + + if request.GET.get('btn_lastattendance') == 'Generate': + geo_calculate_attendances_by_student(from_school, to_school, from_date, to_date) + geo_calculate_last_attendance_date(from_school, to_school) + messages.add_message(request, messages.INFO, 'Finished !') + context = {} + return render(request, "dashboard/exporter.html", context) + if request.GET.get('btn_lastattendance') == 'Excel': + from student_registration.enrollments.models import Enrollment + queryset = Enrollment.objects.filter(education_year__current_year=True).order_by('school__number') + queryset = queryset.filter(school__number__gte=from_school, school__number__lte=to_school) + headers = { + 'school__number': _('School number'), + 'school__name': _('School'), + 'school__location__name': _('District'), + 'school__location__parent__name': _('Governorate'), + 'student__number': 'student number', + 'student__first_name': _('Student first name'), + 'student__father_name': _('Student father name'), + 'student__last_name': _('Student last name'), + 'student__mother_fullname': _('Mother fullname'), + 'student__sex': _('Sex'), + 'student__birthday_year': _('year'), + 'student__birthday_month': _('month'), + 'student__birthday_day': _('day'), + 'student__place_of_birth': _('Place of birth'), + 'student__phone': _('Phone number'), + 'student__phone_prefix': _('Phone prefix'), + 'student__id_number': _('Student ID Number'), + 'student__nationality__name': _('Student nationality'), + 'section__name': _('Current Section'), + 'classroom__name': _('Current Class'), + 'last_attendance_date': _('Last attendance date'), + 'last_absent_date': _('Last absent date'), + 'dropout_status': _('dropout status'), + 'dropout_date': _('dropout date'), + 'moved': _('moved'), + 'last_moved_date': _('last moved date'), + } + queryset = queryset.values( + 'school__number', + 'school__name', + 'school__location__name', + 'school__location__parent__name', + 'student__number', + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__mother_fullname', + 'student__sex', + 'student__birthday_year', + 'student__birthday_month', + 'student__birthday_day', + 'student__place_of_birth', + 'student__phone', + 'student__phone_prefix', + 'student__id_number', + 'student__nationality__name', + 'section__name', + 'classroom__name', + 'last_attendance_date', + 'last_absent_date', + 'dropout_status', + 'dropout_date', + 'moved', + 'last_moved_date', + ) + return render_to_csv_response(queryset, field_header_map=headers) + + +def run_to_excel_per_day(request): + from student_registration.attendances.tasks import geo_calculate_attendances_per_day + from student_registration.attendances.models import AttendanceDt + from student_registration.students.models import Student + from_school = request.GET['txt_from_school'] + to_school = request.GET['txt_to_school'] + from_date = request.GET['txt_from_date'] + to_date = request.GET['txt_to_date'] + txt_std = request.GET['txt_student'] + if request.GET.get('btntype') == 'Generate': + geo_calculate_attendances_per_day(from_school, to_school, from_date, to_date, txt_std) + messages.add_message(request, messages.INFO, 'Finished !') + context = {} + return render(request, "dashboard/exporter.html", context) + else: + if txt_std: + std_id = () + std = Student.objects.filter(number=txt_std) + for st in std: + std_id = st.id, + qs_attendancedt = AttendanceDt.objects.filter(attendance_date__gte=from_date, attendance_date__lte=to_date, + school__number__gte=from_school, school__number__lte=to_school, + student_id__in=std_id).\ + order_by('attendance_date', 'school__number') + else: + qs_attendancedt = AttendanceDt.objects.filter(attendance_date__gte=from_date, attendance_date__lte=to_date, + school__number__gte=from_school, school__number__lte=to_school + ).order_by('attendance_date', 'school__number') + + headers = { + 'school__number': _('School number'), + 'school__name': _('School'), + 'school__location__name': _('District'), + 'school__location__parent__name': _('Governorate'), + 'student__number': 'student number', + 'student__first_name': _('Student first name'), + 'student__father_name': _('Student father name'), + 'student__last_name': _('Student last name'), + 'student__mother_fullname': _('Mother fullname'), + 'student__sex': _('Sex'), + 'student__birthday_year': _('year'), + 'student__birthday_month': _('month'), + 'student__birthday_day': _('day'), + 'student__place_of_birth': _('Place of birth'), + 'student__phone': _('Phone number'), + 'student__phone_prefix': _('Phone prefix'), + + 'student__id_number': _('Student ID Number'), + 'student__nationality__name': _('Student nationality'), + + 'section__name': _('Current Section'), + 'levelname': _('Current Class'), + + 'attendance_date': _('Attendance date'), + 'is_present': _('Is Present'), + + } + qs_attendancedt = qs_attendancedt.values( + 'school__number', + 'school__name', + 'school__location__name', + 'school__location__parent__name', + 'student__number', + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__mother_fullname', + 'student__sex', + 'student__birthday_year', + 'student__birthday_month', + 'student__birthday_day', + 'student__place_of_birth', + 'student__phone', + 'student__phone_prefix', + + 'student__id_number', + 'student__nationality__name', + + 'section__name', + 'levelname', + + 'attendance_date', + 'is_present', + + ) + + return render_to_csv_response(qs_attendancedt, field_header_map=headers) + + class RegistrationsALPView(LoginRequiredMixin, GroupRequiredMixin, TemplateView): @@ -293,6 +630,15 @@ def get_context_data(self, **kwargs): } +class View_Utilities(TemplateView): + template_name = 'dashboard/utilities.html' + + group_required = [u"MEHE"] + + def handle_no_permission(self, request): + return HttpResponseForbidden() + + class RegistrationsALPPostTestView(LoginRequiredMixin, GroupRequiredMixin, TemplateView): @@ -327,3 +673,357 @@ def get_context_data(self, **kwargs): 'governorates': governorates, 'education_levels': ClassLevel.objects.all() } + + +def generate_pretest_result(request): + from student_registration.alp.utils import assign_to_level + from student_registration.alp.models import Outreach, ALPRound + alp_round = ALPRound.objects.get(current_pre_test=True) + + registrations = Outreach.objects.filter(alp_round=alp_round, level__isnull=False) + + for registry in registrations: + try: + registry.assigned_to_level = assign_to_level(registry.level, registry.exam_total) + registry.save() + except Exception as ex: + continue + context = {} + return render(request, "dashboard/exporter.html", context) + + +class List_Justification(TemplateView): + template_name = 'dashboard/list_justification.html' + group_required = [u"MEHE"] + + def handle_no_permission(self, request): + return HttpResponseForbidden() + + def get_queryset(self): + if (self.request.GET.get('rb_groupby') == 'BYSECTION'): + print('Section') + else: + print ('class') + + def get_context_data(self, **kwargs): + from student_registration.enrollments.models import Enrollment + from student_registration.schools.models import EducationYear + education_year = EducationYear.objects.get(current_year=True) + v_exist = Enrollment.objects.filter(education_year_id=education_year, disabled=False, + school_id__isnull=False, school__is_2nd_shift=True, + school_id=self.request.user.school_id, + justificationnumber__isnull=False).count() + if v_exist: + v_last_nb = Enrollment.objects.filter(education_year_id=education_year, + school_id__isnull=False, school__is_2nd_shift=True, + school_id=self.request.user.school_id, disabled=False, + justificationnumber__isnull=False).values_list('justificationnumber', + flat=True).order_by('-justificationnumber')[0] + else: + v_last_nb = '' + return { + 'enrollment': Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, disabled=False, + school_id=self.request.user.school_id). + order_by('classroom_id', 'student__first_name', 'student__father_name', 'student__last_name'), + 'school': School.objects.filter(id=self.request.user.school_id), + 'education_year': education_year, + 'current_date': datetime.now(), + 'last_justificationnumber': v_last_nb, + 'rep_groupby': 'CLASS', + } + + +class List_Justification_BySection(TemplateView): + template_name = 'dashboard/list_justification.html' + group_required = [u"MEHE"] + + def handle_no_permission(self, request): + return HttpResponseForbidden() + + def get_queryset(self): + if (self.request.GET.get('rb_groupby') == 'BYSECTION'): + print('Section') + else: + print ('class') + + def get_context_data(self, **kwargs): + from student_registration.enrollments.models import Enrollment + from student_registration.schools.models import EducationYear + education_year = EducationYear.objects.get(current_year=True) + v_exist = Enrollment.objects.filter(education_year_id=education_year, disabled=False, + school_id__isnull=False, school__is_2nd_shift=True, + school_id=self.request.user.school_id, + justificationnumber__isnull=False).count() + if v_exist: + v_last_nb = Enrollment.objects.filter(education_year_id=education_year, + school_id__isnull=False, school__is_2nd_shift=True, + school_id=self.request.user.school_id, disabled=False, + justificationnumber__isnull=False).values_list('justificationnumber', + flat=True).order_by('-justificationnumber')[0] + else: + v_last_nb = '' + return { + 'enrollment': Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, disabled=False, + school_id=self.request.user.school_id). + order_by('classroom_id', 'section_id', 'student__first_name', 'student__father_name', 'student__last_name'), + 'school': School.objects.filter(id=self.request.user.school_id), + 'education_year': education_year, + 'current_date': datetime.now(), + 'last_justificationnumber': v_last_nb, + 'rep_groupby': 'SECTION', + } + +class List_of_available_documents(TemplateView): + template_name = 'dashboard/available_documents.html' + + def handle_no_permission(self, request): + return HttpResponseForbidden() + + def get_context_data(self, **kwargs): + from student_registration.enrollments.models import Enrollment + from student_registration.schools.models import EducationYear + education_year = EducationYear.objects.get(current_year=True) + + return { + 'enrollment': Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, disabled=False, #dropout_status=False, moved=False, + school_id=self.request.user.school_id).order_by('classroom_id', 'section_id','student'), + 'education_year': education_year, + 'current_date': datetime.now(), + + } + + +def Generate_Justification_number(request): + from student_registration.enrollments.models import Enrollment + from student_registration.schools.models import EducationYear + education_year = EducationYear.objects.get(current_year=True) + Q_Enr = Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, #dropout_status=False, moved=False, + school_id=request.user.school_id, justificationnumber__isnull=True)\ + .order_by('classroom_id'), + q_count = Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True,# dropout_status=False, moved=False, + school_id=request.user.school_id, + justificationnumber__isnull=False).\ + exclude(justificationnumber='').distinct('justificationnumber').order_by('justificationnumber').count(), + for q_enr in Q_Enr: + q_enr.update(justificationnumber= + str(request.user.school.number)+'-'+str(education_year)+'-'+str(int(q_count[0])+1)) + + Q_Users = User.objects.filter(school=request.user.school, is_active=True) + group = Group.objects.get(name='ENROL_CREATE') + for q_users in Q_Users: + q_users.groups.remove(group) + group = Group.objects.get(name='ENROL_EDIT') + for q_users in Q_Users: + q_users.groups.remove(group) + group = Group.objects.get(name='ENROL_DELETE') + for q_users in Q_Users: + q_users.groups.remove(group) + + context = {} + return render(request, "dashboard/utilities.html", context) + + +def degenerate_list_justification(request): + from student_registration.enrollments.models import Enrollment + from student_registration.schools.models import EducationYear + education_year = EducationYear.objects.get(current_year=True) + + if request.method == 'GET': + if request.GET['txt_school']: + Q_Enr = Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, # dropout_status=False, moved=False, + school__number=request.GET['txt_school']).exclude(justificationnumber=''), + + for q_enr in Q_Enr: + q_enr.update(justificationnumber=None) + Q_Users = User.objects.filter(school__number=request.GET['txt_school'], is_active=True) + group = Group.objects.get(name='ENROL_CREATE') + for q_users in Q_Users: + q_users.groups.add(group) + group = Group.objects.get(name='ENROL_EDIT') + for q_users in Q_Users: + q_users.groups.add(group) + group = Group.objects.get(name='ENROL_DELETE') + for q_users in Q_Users: + q_users.groups.add(group) + + context = {} + return render(request, "dashboard/exporter.html", context) + + +class List_of_Attendance(TemplateView): + template_name = 'dashboard/attendance_list.html' + + def handle_no_permission(self, request): + return HttpResponseForbidden() + + def get_context_data(self, **kwargs): + from student_registration.attendances.models import AttendanceDt + from student_registration.enrollments.models import Enrollment + from student_registration.schools.models import EducationYear + from_school = self.request.GET['att_fromschool'] + to_school = self.request.GET['att_toschool'] + from_date = self.request.GET['att_fromdate'] + to_date = self.request.GET['att_todate'] + education_year = EducationYear.objects.get(current_year=True) + ENR = Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + # moved=False, dropout_status=False, + school__is_2nd_shift=True, disabled=False, school__number__gte=from_school, + school__number__lte=to_school).order_by('school_id', 'classroom_id', + 'section_id', 'student__first_name', + 'student__father_name', + 'student__last_name') + list_data = [] + for enr in ENR: + ATTEND = AttendanceDt.objects.filter(attendance_date__gte=from_date, attendance_date__lte=to_date, + is_present=True, student_id=enr.student_id, + school_id=enr.school_id, + classlevel_id=enr.classroom_id, section_id=enr.section_id).count() + ABSENCES = AttendanceDt.objects.filter(attendance_date__gte=from_date, attendance_date__lte=to_date, + is_present=False, student_id=enr.student_id, + school_id=enr.school_id, + classlevel_id=enr.classroom_id, + section_id=enr.section_id).count() + if (((self.request.GET['rb_option'] == 'rb_nozero_attend') and (ATTEND != 0)) + or (self.request.GET['rb_option'] == 'rb_all') + or ((self.request.GET['rb_option'] == 'rb_zero_attend') and (ATTEND == 0))): + list_data.append({ + 'groupby': u'{} - {} - {}'.format(enr.school, enr.classroom, enr.section), + 'school_id': enr.school, + 'class_id': enr.classroom, + 'section_id': enr.section, + 'student_id': enr.student_id, + 'full_name': enr.student.full_name, + 'mother_fullname': enr.student.mother_fullname, + 'birthday': enr.student.birthday, + 'sex': enr.student.sex, + 'total_attend': ATTEND, + 'total_absent': ABSENCES}) + return {'v_data': list_data} + + +def export_summary_of_Attendance(request): + from student_registration.enrollments.models import Enrollment + from student_registration.schools.models import EducationYear + from_school = request.GET['att_fromschool'] + to_school = request.GET['att_toschool'] + from_date = request.GET['att_fromdate'] + to_date = request.GET['att_todate'] + education_year = EducationYear.objects.get(current_year=True) + if (from_school)and(to_date): + qs_enr = Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, school__number__gte=from_school, + school__number__lte=to_school).extra( + select={ + 'attend': """ select count(id) from attendances_attendancedt where is_present=True and + attendances_attendancedt.student_id=enrollments_enrollment.student_id and + attendances_attendancedt.school_id=enrollments_enrollment.school_id + and attendances_attendancedt.attendance_date between %s and %s""", + 'absent': """ select count(id) from attendances_attendancedt where is_present=False and + attendances_attendancedt.student_id=enrollments_enrollment.student_id and + attendances_attendancedt.school_id=enrollments_enrollment.school_id + and attendances_attendancedt.attendance_date between %s and %s""", + 'tel': """ concat(phone_prefix,phone) """, + 'first_attend': """ select min(attendance_date) attendance_date from attendances_attendancedt + where attendances_attendancedt.student_id = enrollments_enrollment.student_id + and is_present=True and attendances_attendancedt.school_id =enrollments_enrollment.school_id """, + }, select_params=[from_date, to_date, from_date, to_date]).order_by('school_id', 'classroom_id', + 'section_id', 'student__first_name', + 'student__father_name', 'student__last_name') + else: + qs_enr = Enrollment.objects.filter(education_year_id=education_year, school_id__isnull=False, + school__is_2nd_shift=True, disabled=False,).extra( + select={ + 'attend': """ select count(id) from attendances_attendancedt where is_present=True and + attendances_attendancedt.student_id=enrollments_enrollment.student_id and + attendances_attendancedt.school_id=enrollments_enrollment.school_id + and attendances_attendancedt.attendance_date between %s and %s""", + 'absent': """ select count(id) from attendances_attendancedt where is_present=False and + attendances_attendancedt.student_id=enrollments_enrollment.student_id and + attendances_attendancedt.school_id=enrollments_enrollment.school_id + and attendances_attendancedt.attendance_date between %s and %s""", + 'tel': """ concat(phone_prefix,phone) """, + 'first_attend': """ select min(attendance_date) attendance_date from attendances_attendancedt + where attendances_attendancedt.student_id = enrollments_enrollment.student_id + and is_present=True and attendances_attendancedt.school_id =enrollments_enrollment.school_id """, + }, select_params=[from_date, to_date, from_date, to_date]).order_by('school_id', 'classroom_id', + 'section_id', 'student__first_name', + 'student__father_name', + 'student__last_name') + headers = { + 'school__number': _('School number'), + 'school__name': _('School'), + 'school__location__name': _('District'), + 'school__location__parent__name': _('Governorate'), + 'section__name': _('Current Section'), + 'classroom__name': _('Current Class'), + 'student__id': 'student id', + 'student__number': 'student number', + 'student__first_name': _('Student first name'), + 'student__father_name': _('Student father name'), + 'student__last_name': _('Student last name'), + 'student__mother_fullname': _('Mother fullname'), + 'student__sex': _('Sex'), + 'student__birthday_year': _('year'), + 'student__birthday_month': _('month'), + 'student__birthday_day': _('day'), + 'student__place_of_birth': _('Place of birth'), + 'tel': _('Phone'), + 'student__id_number': _('Student ID Number'), + 'student__nationality__name': _('Student nationality'), + 'attend': _('attend'), + 'absent': _('absent'), + 'disabled': _('disabled'), + 'moved': _('moved'), + 'dropout_status': _('dropout status'), + 'first_attend': _('first attend'), + } + qs_enr = qs_enr.values( + 'school__number', + 'school__name', + 'school__location__name', + 'school__location__parent__name', + 'section__name', + 'classroom__name', + 'student__id', + 'student__number', + 'student__first_name', + 'student__father_name', + 'student__last_name', + 'student__mother_fullname', + 'student__sex', + 'student__birthday_year', + 'student__birthday_month', + 'student__birthday_day', + 'student__place_of_birth', + 'tel', + 'student__id_number', + 'student__nationality__name', + 'attend', + 'absent', + 'disabled', + 'moved', + 'dropout_status', + 'first_attend', + ) + return render_to_csv_response(qs_enr, field_header_map=headers) + + +def generate_evaluation(request): + school = School.objects.filter(is_closed=False) + education_year = EducationYear.objects.get(current_year=True) + for sch in school: + count_evaluation = Evaluation.objects.filter(school_id=sch.id, education_year=education_year).count() + if count_evaluation == 0: + Evaluation.objects.create( + school_id=sch.id, + education_year=education_year, + owner_id=request.user.id, + ) + context = {} + return render(request, "dashboard/exporter.html", context) diff --git a/student_registration/enrollments/admin.py b/student_registration/enrollments/admin.py index b529056be..6341818a6 100644 --- a/student_registration/enrollments/admin.py +++ b/student_registration/enrollments/admin.py @@ -16,9 +16,11 @@ EnrollmentGrading, StudentMove, LoggingStudentMove, - LoggingProgramMove + LoggingProgramMove, + DuplicateStd, + DocumentType, ) -from .forms import EnrollmentAdminForm, LoggingStudentMoveForm +from .forms import EnrollmentAdminForm, LoggingStudentMoveForm, DuplicateStdAdminForm from .utils import initiate_grading from student_registration.schools.models import ( School, @@ -26,6 +28,37 @@ from student_registration.locations.models import Location +class DuplicateStdResource(resources.ModelResource): + + class Meta: + model = DuplicateStd + form = DuplicateStdAdminForm + fields = ( + 'is_solved', + 'remark', + 'enrollment__student__first_name', + 'enrollment__student__father_name', + 'enrollment__student__last_name', + 'enrollment__student__birthday_day', + 'enrollment__student__birthday_month', + 'enrollment__student__birthday_year', + 'enrollment__student__mother_fullname', + 'classroom__name', + 'enrollment__student__id_number', + 'enrollment__student__number', + 'enrollment__student__sex', + 'enrollment__school__location', + 'enrollment__school__number', + 'enrollment__school__name', + 'governorate', + 'district', + 'enrollment__section__name', + 'coordinator__name', + 'is_deleted', + 'enrollment__moved', + ) + + class EnrollmentResource(resources.ModelResource): governorate = fields.Field( column_name='governorate', @@ -93,8 +126,13 @@ class Meta: 'created', 'modified', 'moved', + 'last_moved_date', 'dropout_status', + 'dropout_date', 'disabled', + 'is_justified', + 'justified_date', + 'justified_by', ) export_order = fields @@ -205,6 +243,7 @@ def lookups(self, request, model_admin): ('1', 'Cycle 1'), ('2', 'Cycle 2'), ('3', 'Cycle 3'), + ('4', 'KG'), ) def queryset(self, request, queryset): @@ -215,6 +254,8 @@ def queryset(self, request, queryset): return queryset.filter(classroom_id__in=[5, 6, 7]) if self.value() == '3': return queryset.filter(classroom_id__in=[8, 9, 10]) + if self.value() == '4': + return queryset.filter(classroom_id__in=[1]) return queryset @@ -267,6 +308,9 @@ class EnrollmentAdmin(ImportExportModelAdmin): 'student_mother_nationality', 'student_phone_number', 'student_address', + 'is_justified', + 'justified_date', + 'justified_by', ) }), ('Current Situation', { @@ -303,6 +347,7 @@ class EnrollmentAdmin(ImportExportModelAdmin): 'moved', 'last_moved_date', 'dropout_status', + 'dropout_date', 'disabled', 'last_attendance_date', 'last_absent_date', @@ -335,6 +380,9 @@ class EnrollmentAdmin(ImportExportModelAdmin): 'last_absent_date', 'created', 'modified', + 'is_justified', + 'justified_date', + 'justified_by', ) list_filter = ( 'education_year', @@ -373,6 +421,7 @@ class EnrollmentAdmin(ImportExportModelAdmin): 'new_registry', 'student_outreached', 'have_barcode', + 'is_justified', ) search_fields = ( 'student__first_name', @@ -777,10 +826,96 @@ def get_export_formats(self): return get_default_export_formats() +class DuplicateStdAdmin(ImportExportModelAdmin): + resource_class = DuplicateStdResource + form = DuplicateStdAdminForm + readonly_fields = ( + 'school_type', + 'student_fullname', + 'student_birthday', + 'student_sex', + 'student_id_number', + 'student_number', + 'student_mother_fullname', + 'school_number', + 'classroom_name', + 'section_name', + 'school_name', + 'school_location', + 'coordinator_name', + 'owner', + ) + fieldsets = ( + ('Enrollment Info', { + 'fields': ( + 'school_type', + 'student_fullname', + 'student_birthday', + 'student_sex', + 'student_id_number', + 'student_number', + 'student_mother_fullname', + 'school_number', + 'classroom_name', + 'section_name', + 'school_name', + 'school_location', + 'coordinator_name', + 'remark', + 'owner', + 'is_solved', + 'is_deleted', + + ) + }), + ) + list_display = ( + 'student_fullname', + 'student_birthday', + 'student_sex', + 'student_id_number', + 'student_number', + 'student_mother_fullname', + 'school_type', + 'school_number', + 'classroom_name', + 'section_name', + 'school_name', + 'school_location', + 'coordinator_name', + 'remark', + 'owner', + 'is_solved', + 'is_deleted', + + ) + list_filter = ( + 'school_type', + 'is_solved', + 'enrollment__school__number', + 'enrollment__school__name', + 'remark', + + ) + search_fields = ( + 'enrollment__student__first_name', + 'enrollment__student__father_name', + 'enrollment__student__last_name', + ) + + def save_model(self, request, obj, form, change): + enr = Enrollment.objects.get(id=obj.enrollment_id) + enr.disabled = obj.is_deleted + enr.save() + obj.save() + + +admin.site.register(DuplicateStd, DuplicateStdAdmin) admin.site.register(Enrollment, EnrollmentAdmin) admin.site.register(Dropout, DropoutAdmin) admin.site.register(Disabled, DisabledAdmin) -# admin.site.register(StudentMove, StudentMoveAdmin) +admin.site.register(StudentMove, StudentMoveAdmin) admin.site.register(LoggingStudentMove, LoggingStudentMoveAdmin) admin.site.register(LoggingProgramMove, LoggingProgramMoveAdmin) admin.site.register(EnrollmentGrading, GradingAdmin) +admin.site.register(DocumentType) diff --git a/student_registration/enrollments/filters.py b/student_registration/enrollments/filters.py index a4c252136..0271cd67d 100644 --- a/student_registration/enrollments/filters.py +++ b/student_registration/enrollments/filters.py @@ -2,8 +2,8 @@ from django_filters import FilterSet, ModelChoiceFilter -from student_registration.locations.models import Location -from student_registration.schools.models import EducationYear, Section, ClassRoom +from model_utils import Choices +from student_registration.schools.models import EducationYear, Section, ClassRoom, School from student_registration.students.models import Nationality from .models import Enrollment @@ -46,3 +46,27 @@ class Meta: 'student__id_number': ['contains'], 'student__nationality': ['exact'], } + + +class Common_ByRegion_Filter(FilterSet): + school = ModelChoiceFilter(queryset=School.objects.all(), empty_label=_('School')) + classroom = ModelChoiceFilter(queryset=ClassRoom.objects.all(), empty_label=_('Class')) + section = ModelChoiceFilter(queryset=Section.objects.all(), empty_label=_('Section')) + student__nationality = ModelChoiceFilter(queryset=Nationality.objects.all(), empty_label=_('Nationality')) + + +class Enrollment_by_region_Filter(Common_ByRegion_Filter): + class Meta: + model = Enrollment + fields = { + 'school': ['exact'], + 'is_justified': ['exact'], + 'classroom': ['exact'], + 'section': ['exact'], + 'student__first_name': ['contains'], + 'student__father_name': ['contains'], + 'student__last_name': ['contains'], + 'student__mother_fullname': ['contains'], + 'student__id_number': ['contains'], + 'student__nationality': ['exact'], + } diff --git a/student_registration/enrollments/forms.py b/student_registration/enrollments/forms.py index ecc07d8ba..699c8e5cd 100644 --- a/student_registration/enrollments/forms.py +++ b/student_registration/enrollments/forms.py @@ -1,3 +1,4 @@ + from __future__ import unicode_literals, absolute_import, division from django.utils.translation import ugettext as _ @@ -9,12 +10,16 @@ from crispy_forms.helper import FormHelper from crispy_forms.bootstrap import FormActions from crispy_forms.layout import Layout, Fieldset, Button, Submit, Div, Field, HTML +from student_registration.students.models import Birth_DocumentType from student_registration.students.models import ( Person, Student, IDType, Nationality, + SpecialNeeds, + SpecialNeedsDt, + FinancialSupport, ) from student_registration.schools.models import ( School, @@ -27,6 +32,7 @@ from .models import Enrollment, LoggingStudentMove, EducationYear from .serializers import EnrollmentSerializer from .utils import initiate_grading +from student_registration.enrollments.models import DuplicateStd, DocumentType YES_NO_CHOICE = ((1, _("Yes")), (0, _("No"))) @@ -40,6 +46,13 @@ DAYS.insert(0, ('', '---------')) +class DuplicateStdAdminForm(forms.ModelForm): + + class Meta: + model = DuplicateStd + fields = '__all__' + + class EnrollmentAdminForm(forms.ModelForm): student = forms.ModelChoiceField( @@ -235,6 +248,10 @@ class EnrollmentForm(forms.ModelForm): label=_("Place of birth"), widget=forms.TextInput, required=False ) + student_recordnumber = forms.CharField( + label=_('Identity record number'), + widget=forms.TextInput, required=False + ) number_in_previous_school = forms.CharField( label=_("Serial number in previous school"), widget=forms.TextInput, required=False @@ -307,12 +324,74 @@ class EnrollmentForm(forms.ModelForm): required=True, to_field_name='id', initial=27 ) - + student_is_specialneeds = forms.BooleanField(required=False, label=_('Special Needs')) + student_specialneeds = forms.ModelChoiceField( + label=_('Special needs program'), + queryset=SpecialNeeds.objects.all(), + widget=forms.Select, + required=False, to_field_name='id' + ) + student_specialneedsdt = forms.ModelChoiceField( + label=_('Details Special needs'), + queryset=SpecialNeedsDt.objects.all(), + widget=forms.Select, + required=False, to_field_name='id' + ) + student_is_financialsupport = forms.BooleanField(required=False, label=_('Is Financial Support')) + student_Financialsupport_number = forms.CharField( + label=_('Financial Support Nb'), + required=False, + widget=forms.TextInput, + ) + student_financialsupport = forms.ModelChoiceField( + label=_('Financial Support Program'), + queryset=FinancialSupport.objects.all(), + widget=forms.Select, + required=False, to_field_name='id' + ) + student_unhcr_family = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXCXXXXX'}), + required=False, + label=_('UNHCR Family Nb.'), + ) + student_unhcr_personal = forms.RegexField( + label=_('UNHCR Personal Nb.'), + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + ) + # student_id_image = forms.ImageField( + # required=False, + # label='_(ID Picture)') student_id = forms.CharField(widget=forms.HiddenInput, required=False) enrollment_id = forms.CharField(widget=forms.HiddenInput, required=False) student_outreach_child = forms.CharField(widget=forms.HiddenInput, required=False) age_min_restricted = forms.BooleanField(widget=forms.HiddenInput, required=False) age_max_restricted = forms.BooleanField(widget=forms.HiddenInput, required=False) + documenttype = forms.ModelChoiceField( + label=_("Private Document Type"), + queryset=DocumentType.objects.all(), widget=forms.Select, + required=True, to_field_name='id', + ) + documentyear = forms.ModelChoiceField( + label=_("Document Year"), + queryset=EducationYear.objects.all(), widget=forms.Select, + required=False, to_field_name='id', + ) + signature_cert_date = forms.DateField( + label=_("Signature Date"), + required=False + ) + documentnumber = forms.CharField( + label=_('Document Number'), + required=False, + widget=forms.TextInput, + ) + document_lastyear = forms.ImageField( + label=_('picture of previous education'), + required=False, + ) def __init__(self, *args, **kwargs): self.request = kwargs.pop('request', None) @@ -323,9 +402,16 @@ def __init__(self, *args, **kwargs): display_registry = '' self.helper = FormHelper() self.helper.form_show_labels = True + str_image = '' + str_id = '-1' if instance: display_registry = ' d-none' form_action = reverse('enrollments:edit', kwargs={'pk': instance.id}) + if instance.student.std_image: + str_image = instance.student.std_image.url + + if instance.student.id: + str_id = str(instance.student.id) else: form_action = reverse('enrollments:add') try: @@ -335,7 +421,6 @@ def __init__(self, *args, **kwargs): self.fields['last_school'].initial = na_school self.helper.form_action = form_action - self.helper.layout = Layout( Fieldset( None, @@ -391,6 +476,14 @@ def __init__(self, *args, **kwargs): Div( HTML('

'+_('Basic Data')+'

') ), + + Div( + + HTML(''), + + #Div('student_std_image', css_class='col-md-3'), + ), + Div( HTML('1'), Div('registration_date', css_class='col-md-3'), @@ -443,6 +536,13 @@ def __init__(self, *args, **kwargs): Div('student_id_number', css_class='col-md-3'), css_class='row', ), + Div( + HTML('15.1'), + Div('student_unhcr_family', css_class='col-md-3'), + HTML('15.2'), + Div('student_unhcr_personal', css_class='col-md-3'), + css_class='row', + ), Div( HTML('16'), Div('student_phone_prefix', css_class='col-md-3'), @@ -456,11 +556,55 @@ def __init__(self, *args, **kwargs): HTML('19'), Div('student_place_of_birth', css_class='col-md-3'), HTML('20'), + Div('student_recordnumber', css_class='col-md-3'), + HTML('21'), Div('number_in_previous_school', css_class='col-md-3'), css_class='row', ), css_class='bd-callout bd-callout-warning child_data' ), + Fieldset( + None, + Div( + Div( + HTML('

' + _('Special needs') + '

') + ), + Div( + HTML(''), + Div('student_is_specialneeds', css_class='col-md-3'), + HTML(''), + ), + Div( + Div('student_specialneeds', css_class='col-md-3'), + Div('student_specialneedsdt', css_class='col-md-3'), + css_class='row', + ), + ), + css_class='bd-callout bd-callout-warning child_data' + ), + Fieldset( + None, + Div( + # HTML('
'), + Div( + HTML('

' + _('Financial support') + '

') + ), + + Div( + HTML(''), + Div('student_is_financialsupport', css_class='col-md-3'), + HTML(''), + ), + Div( + Div('student_financialsupport', css_class='col-md-3'), + Div('student_Financialsupport_number', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning child_data' + ), + # HTML('
'), + ), + Fieldset( None, Div( @@ -516,13 +660,48 @@ def __init__(self, *args, **kwargs): ), css_class='bd-callout bd-callout-warning child_data' ), + Fieldset( + None, + Div( + HTML('

' + + _('Details of the documents justifying the most recent school year (regular or informal)') + + '

') + ), + Div( + HTML('1'), + Div('documenttype', css_class='col-md-3'), + HTML('2'), + Div('documentyear', css_class='col-md-3'), + HTML('3'), + Div('signature_cert_date', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('4'), + Div('document_lastyear', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML(''+_('The name of file should not be in arabic')+''), + ), + css_class='bd-callout bd-callout-warning child_data' + ), + FormActions( Submit('save', _('Save'), css_class='child_data'), Submit('save_add_another', _('Save and add another'), css_class='child_data'), # Submit('save_continue_editing', _('Save and continue editing')), HTML('' + _('Back to list') + ''), + ), + Fieldset( + None, + Div( + HTML('' + _('Upload Pictures') + ' ') + + ) ) + ) # def clean(self): @@ -539,20 +718,77 @@ def save(self, request=None, instance=None): else: messages.warning(request, serializer.errors) else: - serializer = EnrollmentSerializer(data=request.POST) + serializer = EnrollmentSerializer(data=request.POST ) if serializer.is_valid(): instance = serializer.create(validated_data=serializer.validated_data) - instance.school = request.user.school + if request.FILES: + if request.FILES['document_lastyear']: + instance.document_lastyear = request.FILES['document_lastyear'] + instance.school_id = request.user.school_id instance.owner = request.user instance.education_year = EducationYear.objects.get(current_year=True) - instance.save() initiate_grading(enrollment=instance, term=1) initiate_grading(enrollment=instance, term=2) initiate_grading(enrollment=instance, term=3) initiate_grading(enrollment=instance, term=4) + instance.save() messages.success(request, _('Your data has been sent successfully to the server')) else: messages.warning(request, serializer.errors) + if instance.id: + from django.db.models import Q + std = Student.objects.filter(id=instance.student_id) + for st in std: + q_students = Student.objects.filter( + Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + mother_fullname=st.mother_fullname, birthday_year=st.birthday_year, birthday_month= + st.birthday_month, birthday_day=st.birthday_day) + | Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + mother_fullname=st.mother_fullname, id_number=st.id_number) + | Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + id_number=st.id_number, birthday_year=st.birthday_year, + birthday_month=st.birthday_month, + birthday_day=st.birthday_day) + | Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + id_number=st.id_number, birthday_year=st.birthday_year)).exclude(id=st.id) + q_enr = Enrollment.objects.filter(education_year=EducationYear.objects.get(current_year=True), student__in=q_students) + if q_enr: + try: + DuplicateStd.objects.get(enrollment_id=instance.id, is_solved=False) + except DuplicateStd.DoesNotExist: + # SAVING THE CURRENT ROW + q_coordinator = School.objects.get(id=instance.last_school_id) + model_duplicatestd = DuplicateStd.objects.create( + enrollment_id=instance.id, + is_solved=False, + school_type='2ndshift', + owner=request.user, + coordinator_id=q_coordinator.coordinator_id, + Level_id=instance.last_education_level_id, + section_id=instance.section_id, + classroom_id=instance.classroom_id, + education_year=EducationYear.objects.get(current_year=True), + ) + model_duplicatestd.save() + # SAVING THE SAME AS IT + for enr in q_enr: + try: + DuplicateStd.objects.get(enrollment_id=enr.id, is_solved=False) + except DuplicateStd.DoesNotExist: + # SAVING THE CURRENT ROW + q_coordinator = School.objects.get(id=enr.last_school_id) + model_duplicatestd = DuplicateStd.objects.create( + enrollment_id=enr.id, + is_solved=False, + school_type='2ndshift', + owner=enr.owner, + coordinator_id=q_coordinator.coordinator_id, + Level_id=enr.last_education_level_id, + section_id=enr.section_id, + classroom_id=enr.classroom_id, + education_year=EducationYear.objects.get(current_year=True), + ) + model_duplicatestd.save() class Meta: model = Enrollment @@ -568,6 +804,7 @@ class Meta: 'student_birthday_month', 'student_birthday_day', 'student_place_of_birth', + 'student_recordnumber', 'student_phone', 'student_phone_prefix', 'student_id_number', @@ -595,13 +832,22 @@ class Meta: 'have_barcode', 'age_min_restricted', 'age_max_restricted', + 'student_is_specialneeds', + 'student_specialneeds', + 'student_specialneedsdt', + 'student_is_financialsupport', + 'student_Financialsupport_number', + 'student_financialsupport', + 'student_unhcr_family', + 'student_unhcr_personal', + 'document_lastyear', ) initial_fields = fields widgets = {} class Media: js = ( - # 'js/jquery-1.12.3.min.js', + # 'js/jquery-3.3.1.min.js', # 'js/jquery-ui-1.12.1.js', # 'js/validator.js', # 'js/registrations.js', @@ -638,6 +884,7 @@ def __init__(self, *args, **kwargs): (_('D'), _('D')), (_('E'), _('E')), (_('F'), _('F')), + (_('G'), _('G')), ) if instance.exam_term in ['3', '4']: @@ -870,7 +1117,7 @@ def __init__(self, *args, **kwargs): label=_('Math') + ' (/60)', required=True, widget=forms.NumberInput(attrs=({'maxlength': 5})), min_value=0, max_value=60 - ) + ) self.fields['exam_result_physic'] = forms.FloatField( label=_('Physic') + ' (/20)', required=True, @@ -1375,6 +1622,7 @@ def save(self, request=None, instance=None): if serializer.is_valid(): serializer.update(validated_data=serializer.validated_data, instance=instance) messages.success(request, _('Your data has been sent successfully to the server')) + else: messages.warning(request, serializer.errors) @@ -1397,8 +1645,548 @@ class Meta: class Media: js = ( - 'js/jquery-1.12.3.min.js', + 'js/jquery-3.3.1.min.js', 'js/jquery-ui-1.12.1.js', 'js/validator.js', 'js/registrations.js', ) + + +class ImageStudentForm(forms.ModelForm): + document_type = forms.ModelChoiceField( + label=_("Document Type"), + queryset=Birth_DocumentType.objects.all(), widget=forms.Select, + ) + + def __init__(self, *args, **kwargs): + super(ImageStudentForm, self).__init__(*args, **kwargs) + + class Meta: + model = Student + fields = [ + 'id', + 'birth_documenttype', + ] + + +class Modify_Images_Form(forms.ModelForm): + image = forms.ImageField() + + class Meta: + model = Student + fields = ( + 'std_image', + ) + + +class EnrollmentRegion_Form(forms.ModelForm): + new_registry = forms.ChoiceField( + label=_("First time registered?"), + widget=forms.Select, required=True, + choices=(('yes', _("Yes")), ('no', _("No"))), + initial='no' + ) + student_outreached = forms.ChoiceField( + label=_("Student outreached?"), + widget=forms.Select, required=True, + choices=(('yes', _("Yes")), ('no', _("No"))), + initial='yes' + ) + have_barcode = forms.ChoiceField( + label=_("Have barcode with him?"), + widget=forms.Select, required=True, + choices=(('yes', _("Yes")), ('no', _("No"))), + initial='yes' + ) + search_barcode = forms.CharField( + label=_("Search a barcode"), + widget=forms.TextInput, + required=False + ) + search_student = forms.CharField( + label=_("Search a student"), + widget=forms.TextInput, + required=False + ) + search_school = forms.ModelChoiceField( + label=_("Search by School"), + queryset=School.objects.all(), widget=forms.Select, + required=False, to_field_name='id', + initial=0 + ) + + school_type = forms.ChoiceField( + label=_("School type"), + widget=forms.Select, required=False, + choices=( + ('', '----------'), + ('alp', _('ALP')), + ('2ndshift', _('2nd Shift')), + ) + ) + outreach_barcode = forms.RegexField( + label=_('Outreach barcode'), + regex=r'^([A-Z]{2})(\d{8})|(-(\d{1}))$', + widget=forms.TextInput(attrs={'placeholder': 'Format: AA11111111'}), + required=False + ) + registration_date = forms.DateField( + label=_("Registration date"), + required=True + ) + student_first_name = forms.CharField( + label=_("First name"), + widget=forms.TextInput, required=True + ) + student_father_name = forms.CharField( + label=_("Father name"), + widget=forms.TextInput, required=True + ) + student_last_name = forms.CharField( + label=_("Last name"), + widget=forms.TextInput, required=True + ) + student_sex = forms.ChoiceField( + label=_("Sex"), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('Male', _('Male')), + ('Female', _('Female')), + ) + ) + student_birthday_year = forms.ChoiceField( + label=_("Birthday year"), + widget=forms.Select, required=True, + choices=YEARS + ) + student_birthday_month = forms.ChoiceField( + label=_("Birthday month"), + widget=forms.Select, required=True, + choices=( + ('', '----------'), + ('1', _('January')), + ('2', _('February')), + ('3', _('March')), + ('4', _('April')), + ('5', _('May')), + ('6', _('June')), + ('7', _('July')), + ('8', _('August')), + ('9', _('September')), + ('10', _('October')), + ('11', _('November')), + ('12', _('December')), + ) + ) + student_birthday_day = forms.ChoiceField( + label=_("Birthday day"), + widget=forms.Select, required=True, + choices=DAYS + ) + + student_nationality = forms.ModelChoiceField( + label=_("Nationality"), + queryset=Nationality.objects.all(), widget=forms.Select, + required=True, to_field_name='id', + ) + + student_mother_fullname = forms.CharField( + label=_("Mother fullname"), + widget=forms.TextInput, required=True + ) + student_mother_nationality = forms.ModelChoiceField( + label=_("Mother nationality"), + queryset=Nationality.objects.all(), widget=forms.Select, + required=True, to_field_name='id', + ) + student_registered_in_unhcr = forms.ChoiceField( + label=_("Registered in UNHCR"), + widget=forms.Select, required=True, + choices=( + ('', '-----------'), + (1, _("Yes")), + (0, _("No")) + ) + ) + student_id_type = forms.ModelChoiceField( + label=_("ID type"), + queryset=IDType.objects.all(), widget=forms.Select, + required=True, to_field_name='id' + ) + student_id_number = forms.CharField( + label=_("ID number - Cell 14"), + widget=forms.TextInput, required=True + ) + student_phone_prefix = forms.CharField( + label=_("Phone prefix"), + widget=forms.TextInput(attrs=({'maxlength': 2})), required=True + ) + student_phone = forms.CharField( + label=_("Phone number"), + widget=forms.TextInput(attrs=({'maxlength': 6})), required=True + ) + student_address = forms.CharField( + label=_("Address"), + widget=forms.TextInput, required=True + ) + student_place_of_birth = forms.CharField( + label=_("Place of birth"), + widget=forms.TextInput, required=False + ) + student_recordnumber = forms.CharField( + label=_('Identity record number'), + widget=forms.TextInput, required=False + ) + number_in_previous_school = forms.CharField( + label=_("Serial number in previous school"), + widget=forms.TextInput, required=False + ) + student_unhcr_family = forms.RegexField( + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9][0-9][C]\d{5}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXCXXXXX'}), + required=False, + label=_('UNHCR Family Nb.'), + ) + student_unhcr_personal = forms.RegexField( + label=_('UNHCR Personal Nb.'), + regex=r'^((245)|(380)|(568)|(705)|(781)|(909)|(947)|(954)|(LEB)|(leb))-[0-9]{8}$', + widget=forms.TextInput(attrs={'placeholder': 'Format: XXX-XXXXXXXX'}), + required=False, + ) + student_id = forms.CharField(widget=forms.HiddenInput, required=False) + enrollment_id = forms.CharField(widget=forms.HiddenInput, required=False) + student_outreach_child = forms.CharField(widget=forms.HiddenInput, required=False) + age_min_restricted = forms.BooleanField(widget=forms.HiddenInput, required=False) + age_max_restricted = forms.BooleanField(widget=forms.HiddenInput, required=False) + documenttype = forms.ModelChoiceField( + label=_("Private Document Type"), + queryset=DocumentType.objects.all(), widget=forms.Select, + required=True, to_field_name='id', + ) + documentyear = forms.ModelChoiceField( + label=_("Document Year"), + queryset=EducationYear.objects.all(), widget=forms.Select, + required=False, to_field_name='id', + ) + signature_cert_date = forms.DateField( + label=_("Signature Date"), + required=False + ) + documentnumber = forms.CharField( + label=_('Document Number'), + required=False, + widget=forms.TextInput, + ) + document_lastyear = forms.ImageField( + label=_('picture of previous education'), + required=False, + ) + + def __init__(self, *args, **kwargs): + self.request = kwargs.pop('request', None) + super(EnrollmentRegion_Form, self).__init__(*args, **kwargs) + + instance = kwargs['instance'] if 'instance' in kwargs else '' + + display_registry = '' + self.helper = FormHelper() + self.helper.form_show_labels = True + str_image = '' + str_id = '-1' + if instance: + display_registry = ' d-none' + form_action = reverse('enrollments:edit_region', kwargs={'pk': instance.id}) + if instance.student.std_image: + str_image = instance.student.std_image.url + if instance.student.id: + str_id = str(instance.student.id) + + self.helper.form_action = form_action + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('

' + _('Registry') + '

') + ), + Div( + 'student_id', + 'enrollment_id', + 'student_outreach_child', + 'age_min_restricted', + 'age_max_restricted', + HTML('1'), + Div('new_registry', css_class='col-md-3'), + HTML('2'), + Div('student_outreached', css_class='col-md-3'), + HTML('3'), + Div('have_barcode', css_class='col-md-3', css_id='have_barcode_option'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning'+display_registry, css_id='registry_block' + ), + Fieldset( + None, + Div( + HTML('

'+_('Register by Barcode')+'

') + ), + Div( + HTML('1'), + Div('search_barcode', css_class='col-md-4'), + css_class='row', + ), + css_id='register_by_barcode', css_class='bd-callout bd-callout-warning'+display_registry + ), + Fieldset( + None, + Div( + HTML('

'+_('Search old student (fullname Or ID number)')+'

') + ), + Div( + HTML('1'), + Div('school_type', css_class='col-md-3'), + HTML('2'), + Div('search_school', css_class='col-md-4'), + HTML('3'), + Div('search_student', css_class='col-md-3'), + css_class='row', + ), + css_id='search_options', css_class='bd-callout bd-callout-warning'+display_registry + ), + Fieldset( + None, + Div( + HTML('

'+_('Basic Data')+'

') + ), + Div( + HTML(''), + ), + + Div( + HTML('1'), + Div('registration_date', css_class='col-md-3'), + HTML('2'), + Div('outreach_barcode', css_class='col-md-3'), + HTML('' + + _('The barcode is not required, enter a valid one or leave it empty') + + '.
' + + _('Click to see the barcode') + '
'), + css_class='row', + ), + Div( + HTML('3'), + Div('student_first_name', css_class='col-md-3'), + HTML('4'), + Div('student_father_name', css_class='col-md-3'), + HTML('5'), + Div('student_last_name', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('6'), + Div('student_birthday_year', css_class='col-md-3'), + HTML('7'), + Div('student_birthday_month', css_class='col-md-3'), + HTML('8'), + Div('student_birthday_day', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('9'), + Div('student_sex', css_class='col-md-3'), + HTML('10'), + Div('student_nationality', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('11'), + Div('student_mother_fullname', css_class='col-md-3'), + HTML('12'), + Div('student_mother_nationality', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('13'), + Div('student_registered_in_unhcr', css_class='col-md-3'), + HTML('14'), + Div('student_id_type', css_class='col-md-3'), + HTML('15'), + Div('student_id_number', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('15.1'), + Div('student_unhcr_family', css_class='col-md-3'), + HTML('15.2'), + Div('student_unhcr_personal', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('16'), + Div('student_phone_prefix', css_class='col-md-3'), + HTML('17'), + Div('student_phone', css_class='col-md-3'), + HTML('18'), + Div('student_address', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('19'), + Div('student_place_of_birth', css_class='col-md-3'), + HTML('20'), + Div('student_recordnumber', css_class='col-md-3'), + HTML('21'), + Div('number_in_previous_school', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning child_data' + ), + Fieldset( + None, + Div( + HTML('

' + + _('Details of the documents justifying the most recent school year (regular or informal)') + + '

') + ), + Div( + HTML('1'), + Div('documenttype', css_class='col-md-3'), + HTML('2'), + Div('documentyear', css_class='col-md-3'), + HTML('3'), + Div('signature_cert_date', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('4'), + Div('document_lastyear', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML(''+_('The name of file should not be in arabic')+''), + ), + css_class='bd-callout bd-callout-warning child_data' + ), + + FormActions( + Submit('save', _('Save'), css_class='child_data'), + HTML('' + _('Back to list') + ''), + ), + Fieldset( + None, + Div( + HTML('' + _('Upload Pictures') + ' ') + + ) + ) + + ) + + def save(self, request=None, instance=None): + if instance: + serializer = EnrollmentSerializer(instance, data=request.POST) + if serializer.is_valid(): + serializer.update(validated_data=serializer.validated_data, instance=instance) + messages.success(request, _('Your data has been sent successfully to the server')) + else: + messages.warning(request, serializer.errors) + if instance.id: + from django.db.models import Q + std = Student.objects.filter(id=instance.student_id) + for st in std: + q_students = Student.objects.filter( + Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + mother_fullname=st.mother_fullname, birthday_year=st.birthday_year, birthday_month= + st.birthday_month, birthday_day=st.birthday_day) + | Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + mother_fullname=st.mother_fullname, id_number=st.id_number) + | Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + id_number=st.id_number, birthday_year=st.birthday_year, + birthday_month=st.birthday_month, + birthday_day=st.birthday_day) + | Q(first_name=st.first_name, father_name=st.father_name, last_name=st.last_name, + id_number=st.id_number, birthday_year=st.birthday_year)).exclude(id=st.id) + q_enr = Enrollment.objects.filter(education_year=EducationYear.objects.get(current_year=True), student__in=q_students) + if q_enr: + try: + DuplicateStd.objects.get(enrollment_id=instance.id, is_solved=False) + except DuplicateStd.DoesNotExist: + # SAVING THE CURRENT ROW + q_coordinator = School.objects.get(id=instance.last_school_id) + model_duplicatestd = DuplicateStd.objects.create( + enrollment_id=instance.id, + is_solved=False, + school_type='2ndshift', + owner=request.user, + coordinator_id=q_coordinator.coordinator_id, + Level_id=instance.last_education_level_id, + section_id=instance.section_id, + classroom_id=instance.classroom_id, + education_year=EducationYear.objects.get(current_year=True), + ) + model_duplicatestd.save() + # SAVING THE SAME AS IT + for enr in q_enr: + try: + DuplicateStd.objects.get(enrollment_id=enr.id, is_solved=False) + except DuplicateStd.DoesNotExist: + # SAVING THE CURRENT ROW + q_coordinator = School.objects.get(id=enr.last_school_id) + model_duplicatestd = DuplicateStd.objects.create( + enrollment_id=enr.id, + is_solved=False, + school_type='2ndshift', + owner=enr.owner, + coordinator_id=q_coordinator.coordinator_id, + Level_id=enr.last_education_level_id, + section_id=enr.section_id, + classroom_id=enr.classroom_id, + education_year=EducationYear.objects.get(current_year=True), + ) + model_duplicatestd.save() + + class Meta: + model = Enrollment + fields = ( + 'student_id', + 'enrollment_id', + 'student_first_name', + 'student_father_name', + 'student_last_name', + 'student_mother_fullname', + 'student_sex', + 'student_birthday_year', + 'student_birthday_month', + 'student_birthday_day', + 'student_place_of_birth', + 'student_recordnumber', + 'student_phone', + 'student_phone_prefix', + 'student_id_number', + 'student_id_type', + 'student_nationality', + 'student_mother_nationality', + 'student_registered_in_unhcr', + 'number_in_previous_school', + 'student_address', + 'outreach_barcode', + 'new_registry', + 'student_outreached', + 'have_barcode', + 'age_min_restricted', + 'age_max_restricted', + 'student_unhcr_family', + 'student_unhcr_personal', + 'document_lastyear', + ) + initial_fields = fields + widgets = {} + + class Media: + js = ( + # 'js/jquery-3.3.1.min.js', + # 'js/jquery-ui-1.12.1.js', + # 'js/validator.js', + # 'js/registrations.js', + ) diff --git a/student_registration/enrollments/migrations/0076_auto_20190314_2029.py b/student_registration/enrollments/migrations/0076_auto_20190314_2029.py new file mode 100644 index 000000000..bd08e9a72 --- /dev/null +++ b/student_registration/enrollments/migrations/0076_auto_20190314_2029.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-14 18:29 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0075_auto_20180405_1035'), + ] + + operations = [ + migrations.AlterField( + model_name='enrollment', + name='last_informal_edu_year', + field=models.CharField(blank=True, choices=[('2000/2001', '2000/2001'), ('2001/2002', '2001/2002'), ('2002/2003', '2002/2003'), ('2003/2004', '2003/2004'), ('2004/2005', '2004/2005'), ('2005/2006', '2005/2006'), ('2006/2007', '2006/2007'), ('2007/2008', '2007/2008'), ('2008/2009', '2008/2009'), ('2009/2010', '2009/2010'), ('2010/2011', '2010/2011'), ('2011/2012', '2011/2012'), ('2012/2013', '2012/2013'), ('2013/2014', '2013/2014'), ('2014/2015', '2014/2015'), ('2015/2016', '2015/2016'), ('2016/2017', '2016/2017'), ('2017/2018', '2017/2018')], max_length=10, null=True, verbose_name='\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0633\u0627\u0628\u0642\u0629 - \u0622\u062e\u0631 \u0633\u0646\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u063a\u064a\u0631 \u0627\u0644\u0646\u0638\u0627\u0645\u064a '), + ), + ] diff --git a/student_registration/enrollments/migrations/0076_auto_20190314_2341.py b/student_registration/enrollments/migrations/0076_auto_20190314_2341.py new file mode 100644 index 000000000..08d26caab --- /dev/null +++ b/student_registration/enrollments/migrations/0076_auto_20190314_2341.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-14 21:41 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0075_auto_20180405_1035'), + ] + + operations = [ + migrations.AlterField( + model_name='enrollment', + name='last_informal_edu_year', + field=models.CharField(blank=True, choices=[('2000/2001', '2000/2001'), ('2001/2002', '2001/2002'), ('2002/2003', '2002/2003'), ('2003/2004', '2003/2004'), ('2004/2005', '2004/2005'), ('2005/2006', '2005/2006'), ('2006/2007', '2006/2007'), ('2007/2008', '2007/2008'), ('2008/2009', '2008/2009'), ('2009/2010', '2009/2010'), ('2010/2011', '2010/2011'), ('2011/2012', '2011/2012'), ('2012/2013', '2012/2013'), ('2013/2014', '2013/2014'), ('2014/2015', '2014/2015'), ('2015/2016', '2015/2016'), ('2016/2017', '2016/2017'), ('2017/2018', '2017/2018')], max_length=10, null=True, verbose_name='\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0633\u0627\u0628\u0642\u0629 - \u0622\u062e\u0631 \u0633\u0646\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u063a\u064a\u0631 \u0627\u0644\u0646\u0638\u0627\u0645\u064a '), + ), + ] diff --git a/student_registration/enrollments/migrations/0077_merge_20190320_1203.py b/student_registration/enrollments/migrations/0077_merge_20190320_1203.py new file mode 100644 index 000000000..8dbb6446d --- /dev/null +++ b/student_registration/enrollments/migrations/0077_merge_20190320_1203.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-20 10:03 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0076_auto_20190314_2029'), + ('enrollments', '0076_auto_20190314_2341'), + ] + + operations = [ + ] diff --git a/student_registration/enrollments/migrations/0078_auto_20190328_1416.py b/student_registration/enrollments/migrations/0078_auto_20190328_1416.py new file mode 100644 index 000000000..2700e92ce --- /dev/null +++ b/student_registration/enrollments/migrations/0078_auto_20190328_1416.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-28 12:16 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0077_merge_20190320_1203'), + ] + + operations = [ + migrations.AlterField( + model_name='enrollment', + name='last_school_type', + field=models.CharField(blank=True, choices=[('na', 'n/a'), ('out_the_country', '\u0645\u062f\u0631\u0633\u0629 \u062e\u0627\u0631\u062c \u0644\u0628\u0646\u0627\u0646'), ('public_in_country', '\u0645\u062f\u0631\u0633\u0629 \u0631\u0633\u0645\u064a\u0629 \u0641\u064a \u0644\u0628\u0646\u0627\u0646'), ('private_in_country', '\u0645\u062f\u0631\u0633\u0629 \u062e\u0627\u0635\u0629 \u0641\u064a \u0644\u0628\u0646\u0627\u0646'), ('CB_ECE', 'CB ECE')], max_length=50, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + ] diff --git a/student_registration/enrollments/migrations/0078_auto_20190402_2122.py b/student_registration/enrollments/migrations/0078_auto_20190402_2122.py new file mode 100644 index 000000000..ec3f0c217 --- /dev/null +++ b/student_registration/enrollments/migrations/0078_auto_20190402_2122.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-04-02 18:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0077_merge_20190320_1203'), + ] + + operations = [ + migrations.AddField( + model_name='enrollment', + name='dropout_date', + field=models.DateField(blank=True, null=True, verbose_name='\u0627\u062e\u0631 \u062a\u0627\u0631\u064a\u062e \u0627\u0646\u062a\u0642\u0644 \u0641\u064a\u0647'), + ), + migrations.AlterField( + model_name='enrollment', + name='last_school_type', + field=models.CharField(blank=True, choices=[('na', 'n/a'), ('out_the_country', '\u0645\u062f\u0631\u0633\u0629 \u062e\u0627\u0631\u062c \u0644\u0628\u0646\u0627\u0646'), ('public_in_country', '\u0645\u062f\u0631\u0633\u0629 \u0631\u0633\u0645\u064a\u0629 \u0641\u064a \u0644\u0628\u0646\u0627\u0646'), ('private_in_country', '\u0645\u062f\u0631\u0633\u0629 \u062e\u0627\u0635\u0629 \u0641\u064a \u0644\u0628\u0646\u0627\u0646'), ('CB_ECE', 'CB ECE')], max_length=50, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + ] diff --git a/student_registration/enrollments/migrations/0079_merge_20190409_1038.py b/student_registration/enrollments/migrations/0079_merge_20190409_1038.py new file mode 100644 index 000000000..8651a1a7d --- /dev/null +++ b/student_registration/enrollments/migrations/0079_merge_20190409_1038.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-04-09 07:38 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0078_auto_20190328_1416'), + ('enrollments', '0078_auto_20190402_2122'), + ] + + operations = [ + ] diff --git a/student_registration/enrollments/migrations/0080_auto_20190521_1343.py b/student_registration/enrollments/migrations/0080_auto_20190521_1343.py new file mode 100644 index 000000000..9d5fa6a69 --- /dev/null +++ b/student_registration/enrollments/migrations/0080_auto_20190521_1343.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-05-21 10:43 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0079_merge_20190409_1038'), + ] + + operations = [ + migrations.AlterField( + model_name='enrollment', + name='dropout_date', + field=models.DateField(blank=True, null=True, verbose_name='dropout date'), + ), + ] diff --git a/student_registration/enrollments/migrations/0081_auto_20190819_1002.py b/student_registration/enrollments/migrations/0081_auto_20190819_1002.py new file mode 100644 index 000000000..0a3d30171 --- /dev/null +++ b/student_registration/enrollments/migrations/0081_auto_20190819_1002.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-08-19 07:02 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0080_auto_20190521_1343'), + ] + + operations = [ + migrations.AlterField( + model_name='enrollment', + name='dropout_date', + field=models.DateField(blank=True, null=True, verbose_name=' \u062a\u0627\u0631\u064a\u062e \u0627\u0644\u062a\u0633\u0631\u0628 '), + ), + ] diff --git a/student_registration/enrollments/migrations/0081_duplicatestd.py b/student_registration/enrollments/migrations/0081_duplicatestd.py new file mode 100644 index 000000000..2fc97c5a2 --- /dev/null +++ b/student_registration/enrollments/migrations/0081_duplicatestd.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-08-12 09:55 +from __future__ import unicode_literals + +import datetime +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('enrollments', '0080_auto_20190521_1343'), + ] + + operations = [ + migrations.CreateModel( + name='DuplicateStd', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sysdate', models.DateTimeField(default=datetime.date.today)), + ('is_solved', models.BooleanField(default=False)), + ('remark', models.CharField(blank=True, max_length=500)), + ('school_type', models.CharField(max_length=20)), + ('enrollment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='enrollment_id', to='enrollments.Enrollment')), + ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='added_by', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/student_registration/enrollments/migrations/0082_auto_20190812_1804.py b/student_registration/enrollments/migrations/0082_auto_20190812_1804.py new file mode 100644 index 000000000..b7cfa2b42 --- /dev/null +++ b/student_registration/enrollments/migrations/0082_auto_20190812_1804.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-08-12 15:04 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('enrollments', '0081_duplicatestd'), + ] + + operations = [ + migrations.RemoveField( + model_name='duplicatestd', + name='user', + ), + migrations.AddField( + model_name='duplicatestd', + name='owner', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='\u0627\u0646\u0634\u0623 \u0645\u0646 \u0642\u0628\u0644'), + ), + ] diff --git a/student_registration/enrollments/migrations/0083_auto_20190812_2135.py b/student_registration/enrollments/migrations/0083_auto_20190812_2135.py new file mode 100644 index 000000000..dfa2d3e34 --- /dev/null +++ b/student_registration/enrollments/migrations/0083_auto_20190812_2135.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-08-12 18:35 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0082_auto_20190812_1804'), + ] + + operations = [ + migrations.AlterField( + model_name='duplicatestd', + name='sysdate', + field=models.DateTimeField(default=django.utils.timezone.now), + ), + ] diff --git a/student_registration/enrollments/migrations/0084_auto_20190911_1704.py b/student_registration/enrollments/migrations/0084_auto_20190911_1704.py new file mode 100644 index 000000000..1ed9912e0 --- /dev/null +++ b/student_registration/enrollments/migrations/0084_auto_20190911_1704.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-11 14:04 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0039_auto_20190619_1028'), + ('enrollments', '0083_auto_20190812_2135'), + ] + + operations = [ + migrations.AddField( + model_name='duplicatestd', + name='Level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.ClassLevel', verbose_name='Class Level'), + ), + migrations.AddField( + model_name='duplicatestd', + name='classroom', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.ClassRoom', verbose_name='\u0627\u0644\u0635\u0641 \u0627\u0644\u062d\u0627\u0644\u064a'), + ), + migrations.AddField( + model_name='duplicatestd', + name='coordinator', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schools.Coordinator', verbose_name='Coordinator'), + ), + migrations.AddField( + model_name='duplicatestd', + name='current_year', + field=models.CharField(default=2019, max_length=10), + ), + migrations.AddField( + model_name='duplicatestd', + name='is_deleted', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='duplicatestd', + name='section', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.Section', verbose_name='\u0627\u0644\u0634\u0639\u0628\u0629 \u0627\u0644\u062d\u0627\u0644\u064a\u0629'), + ), + ] diff --git a/student_registration/enrollments/migrations/0085_merge_20190919_1028.py b/student_registration/enrollments/migrations/0085_merge_20190919_1028.py new file mode 100644 index 000000000..de86b0193 --- /dev/null +++ b/student_registration/enrollments/migrations/0085_merge_20190919_1028.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-19 07:28 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0084_auto_20190911_1704'), + ('enrollments', '0081_auto_20190819_1002'), + ] + + operations = [ + ] diff --git a/student_registration/enrollments/migrations/0086_auto_20190928_0838.py b/student_registration/enrollments/migrations/0086_auto_20190928_0838.py new file mode 100644 index 000000000..26476c217 --- /dev/null +++ b/student_registration/enrollments/migrations/0086_auto_20190928_0838.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-28 05:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0085_merge_20190919_1028'), + ] + + operations = [ + migrations.AlterModelOptions( + name='duplicatestd', + options={'verbose_name': 'Duplicated Students'}, + ), + migrations.AlterField( + model_name='duplicatestd', + name='Level', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.ClassLevel', verbose_name='\u0627\u0644\u0645\u0633\u062a\u0648\u0649 '), + ), + migrations.AlterField( + model_name='duplicatestd', + name='coordinator', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schools.Coordinator', verbose_name='\u0627\u0633\u0645 \u0627\u0644\u0645\u0646\u0633\u0642 \u0627\u0644\u0645\u064a\u062f\u0627\u0646\u064a'), + ), + ] diff --git a/student_registration/enrollments/migrations/0087_auto_20191008_1151.py b/student_registration/enrollments/migrations/0087_auto_20191008_1151.py new file mode 100644 index 000000000..58f1c1a7e --- /dev/null +++ b/student_registration/enrollments/migrations/0087_auto_20191008_1151.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-10-08 08:51 +from __future__ import unicode_literals + +from django.db import migrations +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0086_auto_20190928_0838'), + ] + + operations = [ + migrations.RemoveField( + model_name='duplicatestd', + name='sysdate', + ), + migrations.AddField( + model_name='duplicatestd', + name='created', + field=model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created'), + ), + migrations.AddField( + model_name='duplicatestd', + name='modified', + field=model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified'), + ), + ] diff --git a/student_registration/enrollments/migrations/0087_enrollment_nb_consecutiveabsences.py b/student_registration/enrollments/migrations/0087_enrollment_nb_consecutiveabsences.py new file mode 100644 index 000000000..303b6231c --- /dev/null +++ b/student_registration/enrollments/migrations/0087_enrollment_nb_consecutiveabsences.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-10-06 18:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0086_auto_20190928_0838'), + ] + + operations = [ + migrations.AddField( + model_name='enrollment', + name='nb_consecutiveabsences', + field=models.IntegerField(blank=True, null=True), + ), + ] diff --git a/student_registration/enrollments/migrations/0088_merge_20191010_0457.py b/student_registration/enrollments/migrations/0088_merge_20191010_0457.py new file mode 100644 index 000000000..bbb63fa2c --- /dev/null +++ b/student_registration/enrollments/migrations/0088_merge_20191010_0457.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-10-10 01:57 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0087_enrollment_nb_consecutiveabsences'), + ('enrollments', '0087_auto_20191008_1151'), + ] + + operations = [ + ] diff --git a/student_registration/enrollments/migrations/0089_duplicatestd_education_year.py b/student_registration/enrollments/migrations/0089_duplicatestd_education_year.py new file mode 100644 index 000000000..69ddf9b66 --- /dev/null +++ b/student_registration/enrollments/migrations/0089_duplicatestd_education_year.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-05 10:46 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0042_setup'), + ('enrollments', '0088_merge_20191010_0457'), + ] + + operations = [ + migrations.AddField( + model_name='duplicatestd', + name='education_year', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationYear', verbose_name='\u0627\u0644\u0633\u0646\u0629 \u0627\u0644\u062f\u0631\u0627\u0633\u064a\u0629'), + ), + ] diff --git a/student_registration/enrollments/migrations/0090_duplicatestd_alp_round.py b/student_registration/enrollments/migrations/0090_duplicatestd_alp_round.py new file mode 100644 index 000000000..2da345b6e --- /dev/null +++ b/student_registration/enrollments/migrations/0090_duplicatestd_alp_round.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-17 12:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('alp', '0053_auto_20191008_1151'), + ('enrollments', '0089_duplicatestd_education_year'), + ] + + operations = [ + migrations.AddField( + model_name='duplicatestd', + name='alp_round', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='alp.ALPRound'), + ), + ] diff --git a/student_registration/enrollments/migrations/0091_auto_20191217_1447.py b/student_registration/enrollments/migrations/0091_auto_20191217_1447.py new file mode 100644 index 000000000..bb955795e --- /dev/null +++ b/student_registration/enrollments/migrations/0091_auto_20191217_1447.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-17 12:47 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('alp', '0053_auto_20191008_1151'), + ('enrollments', '0090_duplicatestd_alp_round'), + ] + + operations = [ + migrations.AddField( + model_name='duplicatestd', + name='outreach', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='outreach_id', to='alp.Outreach'), + ), + migrations.AlterField( + model_name='duplicatestd', + name='enrollment', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='enrollment_id', to='enrollments.Enrollment'), + ), + ] diff --git a/student_registration/enrollments/migrations/0092_auto_20200105_2322.py b/student_registration/enrollments/migrations/0092_auto_20200105_2322.py new file mode 100644 index 000000000..8cbd98b57 --- /dev/null +++ b/student_registration/enrollments/migrations/0092_auto_20200105_2322.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-05 21:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0091_auto_20191217_1447'), + ] + + operations = [ + migrations.AlterField( + model_name='duplicatestd', + name='current_year', + field=models.CharField(default=2020, max_length=10), + ), + migrations.AlterField( + model_name='enrollment', + name='last_informal_edu_year', + field=models.CharField(blank=True, choices=[('2000/2001', '2000/2001'), ('2001/2002', '2001/2002'), ('2002/2003', '2002/2003'), ('2003/2004', '2003/2004'), ('2004/2005', '2004/2005'), ('2005/2006', '2005/2006'), ('2006/2007', '2006/2007'), ('2007/2008', '2007/2008'), ('2008/2009', '2008/2009'), ('2009/2010', '2009/2010'), ('2010/2011', '2010/2011'), ('2011/2012', '2011/2012'), ('2012/2013', '2012/2013'), ('2013/2014', '2013/2014'), ('2014/2015', '2014/2015'), ('2015/2016', '2015/2016'), ('2016/2017', '2016/2017'), ('2017/2018', '2017/2018'), ('2018/2019', '2018/2019')], max_length=10, null=True, verbose_name='\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0633\u0627\u0628\u0642\u0629 - \u0622\u062e\u0631 \u0633\u0646\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u063a\u064a\u0631 \u0627\u0644\u0646\u0638\u0627\u0645\u064a '), + ), + ] diff --git a/student_registration/enrollments/migrations/0093_auto_20200116_1947.py b/student_registration/enrollments/migrations/0093_auto_20200116_1947.py new file mode 100644 index 000000000..311e1a9db --- /dev/null +++ b/student_registration/enrollments/migrations/0093_auto_20200116_1947.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-16 17:47 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0047_auto_20200114_0918'), + ('enrollments', '0092_auto_20200105_2322'), + ] + + operations = [ + migrations.CreateModel( + name='DocumentType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(blank=True, max_length=70, null=True)), + ('description', models.CharField(blank=True, max_length=500, null=True)), + ], + ), + migrations.AddField( + model_name='enrollment', + name='document_number', + field=models.CharField(blank=True, max_length=20, null=True, verbose_name='Document Nunber'), + ), + migrations.AddField( + model_name='enrollment', + name='document_year', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationYear', verbose_name='Document Year'), + ), + migrations.AddField( + model_name='enrollment', + name='document_type', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='enrollments.DocumentType', verbose_name='Document Type'), + ), + ] diff --git a/student_registration/enrollments/migrations/0094_auto_20200116_1957.py b/student_registration/enrollments/migrations/0094_auto_20200116_1957.py new file mode 100644 index 000000000..c827681bf --- /dev/null +++ b/student_registration/enrollments/migrations/0094_auto_20200116_1957.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-16 17:57 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0093_auto_20200116_1947'), + ] + + operations = [ + migrations.AlterModelOptions( + name='documenttype', + options={'ordering': ['id'], 'verbose_name': 'Document Type', 'verbose_name_plural': 'Documents Type'}, + ), + ] diff --git a/student_registration/enrollments/migrations/0095_auto_20200116_2258.py b/student_registration/enrollments/migrations/0095_auto_20200116_2258.py new file mode 100644 index 000000000..e1bc37121 --- /dev/null +++ b/student_registration/enrollments/migrations/0095_auto_20200116_2258.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-16 20:58 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0094_auto_20200116_1957'), + ] + + operations = [ + migrations.RenameField( + model_name='enrollment', + old_name='document_number', + new_name='documentnumber', + ), + migrations.RenameField( + model_name='enrollment', + old_name='document_type', + new_name='documenttype', + ), + migrations.RenameField( + model_name='enrollment', + old_name='document_year', + new_name='documentyear', + ), + ] diff --git a/student_registration/enrollments/migrations/0096_auto_20200117_1032.py b/student_registration/enrollments/migrations/0096_auto_20200117_1032.py new file mode 100644 index 000000000..a9adfc65a --- /dev/null +++ b/student_registration/enrollments/migrations/0096_auto_20200117_1032.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-17 08:32 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import student_registration.enrollments.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0095_auto_20200116_2258'), + ] + + operations = [ + migrations.AddField( + model_name='enrollment', + name='document_lastyear', + field=models.ImageField(blank=True, help_text='\u0635\u0648\u0631\u0629 \u0639\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0633\u0627\u0628\u0642', null=True, upload_to='enr/doc', validators=[student_registration.enrollments.models.validate_file_size]), + ), + migrations.AlterField( + model_name='enrollment', + name='documentnumber', + field=models.CharField(blank=True, max_length=20, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0645\u0633\u062a\u0646\u062f'), + ), + migrations.AlterField( + model_name='enrollment', + name='documenttype', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='enrollments.DocumentType', verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0627\u0644\u062a\u0644\u0645\u064a\u0630'), + ), + migrations.AlterField( + model_name='enrollment', + name='documentyear', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationYear', verbose_name='\u0633\u0646\u0629 \u0627\u0644\u062a\u0635\u062f\u064a\u0642'), + ), + ] diff --git a/student_registration/enrollments/migrations/0097_documenttype_document_type.py b/student_registration/enrollments/migrations/0097_documenttype_document_type.py new file mode 100644 index 000000000..2197b52c1 --- /dev/null +++ b/student_registration/enrollments/migrations/0097_documenttype_document_type.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-18 18:19 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0096_auto_20200117_1032'), + ] + + operations = [ + migrations.AddField( + model_name='documenttype', + name='document_type', + field=models.CharField(blank=True, choices=[('P', 'Personal'), ('E', 'Educational')], max_length=1, null=True), + ), + ] diff --git a/student_registration/enrollments/migrations/0098_remove_documenttype_document_type.py b/student_registration/enrollments/migrations/0098_remove_documenttype_document_type.py new file mode 100644 index 000000000..7d2e2047b --- /dev/null +++ b/student_registration/enrollments/migrations/0098_remove_documenttype_document_type.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-20 10:27 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0097_documenttype_document_type'), + ] + + operations = [ + migrations.RemoveField( + model_name='documenttype', + name='document_type', + ), + ] diff --git a/student_registration/enrollments/migrations/0099_enrollment_justificationnumber.py b/student_registration/enrollments/migrations/0099_enrollment_justificationnumber.py new file mode 100644 index 000000000..6bf589cb4 --- /dev/null +++ b/student_registration/enrollments/migrations/0099_enrollment_justificationnumber.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-26 18:32 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0098_remove_documenttype_document_type'), + ] + + operations = [ + migrations.AddField( + model_name='enrollment', + name='justificationnumber', + field=models.CharField(blank=True, max_length=25, null=True, verbose_name='Justification Number'), + ), + ] diff --git a/student_registration/enrollments/migrations/0100_documenttype_description2.py b/student_registration/enrollments/migrations/0100_documenttype_description2.py new file mode 100644 index 000000000..85f12e631 --- /dev/null +++ b/student_registration/enrollments/migrations/0100_documenttype_description2.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-30 17:10 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0099_enrollment_justificationnumber'), + ] + + operations = [ + migrations.AddField( + model_name='documenttype', + name='description2', + field=models.CharField(blank=True, max_length=200, null=True), + ), + ] diff --git a/student_registration/enrollments/migrations/0101_enrollment_signature_cert_date.py b/student_registration/enrollments/migrations/0101_enrollment_signature_cert_date.py new file mode 100644 index 000000000..ee5ed5f2c --- /dev/null +++ b/student_registration/enrollments/migrations/0101_enrollment_signature_cert_date.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-31 11:59 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0100_documenttype_description2'), + ] + + operations = [ + migrations.AddField( + model_name='enrollment', + name='signature_cert_date', + field=models.DateField(blank=True, null=True), + ), + ] diff --git a/student_registration/enrollments/migrations/0102_auto_20200216_1831.py b/student_registration/enrollments/migrations/0102_auto_20200216_1831.py new file mode 100644 index 000000000..ac09570ba --- /dev/null +++ b/student_registration/enrollments/migrations/0102_auto_20200216_1831.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-02-16 16:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0101_enrollment_signature_cert_date'), + ] + + operations = [ + migrations.AlterField( + model_name='enrollment', + name='justificationnumber', + field=models.CharField(blank=True, max_length=25, null=True, verbose_name='\u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u0644\u0644\u0637\u0641\u0644'), + ), + migrations.AlterField( + model_name='enrollment', + name='signature_cert_date', + field=models.DateField(blank=True, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u062a\u0635\u062f\u064a\u0642'), + ), + ] diff --git a/student_registration/enrollments/migrations/0103_enrollment_is_justified.py b/student_registration/enrollments/migrations/0103_enrollment_is_justified.py new file mode 100644 index 000000000..4296301a8 --- /dev/null +++ b/student_registration/enrollments/migrations/0103_enrollment_is_justified.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-03 11:39 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0102_auto_20200216_1831'), + ] + + operations = [ + migrations.AddField( + model_name='enrollment', + name='is_justified', + field=models.BooleanField(default=True), + ), + ] diff --git a/student_registration/enrollments/migrations/0104_auto_20200303_1415.py b/student_registration/enrollments/migrations/0104_auto_20200303_1415.py new file mode 100644 index 000000000..0c56e4dd9 --- /dev/null +++ b/student_registration/enrollments/migrations/0104_auto_20200303_1415.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-03 12:15 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0103_enrollment_is_justified'), + ] + + operations = [ + migrations.AlterField( + model_name='enrollment', + name='is_justified', + field=models.BooleanField(default=False), + ), + ] diff --git a/student_registration/enrollments/migrations/0105_enrollment_justified_date.py b/student_registration/enrollments/migrations/0105_enrollment_justified_date.py new file mode 100644 index 000000000..3c76d230d --- /dev/null +++ b/student_registration/enrollments/migrations/0105_enrollment_justified_date.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-03 23:15 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0104_auto_20200303_1415'), + ] + + operations = [ + migrations.AddField( + model_name='enrollment', + name='justified_date', + field=models.DateField(blank=True, default=django.utils.timezone.now, null=True, verbose_name='Justified Date'), + ), + ] diff --git a/student_registration/enrollments/migrations/0106_enrollment_justified_by.py b/student_registration/enrollments/migrations/0106_enrollment_justified_by.py new file mode 100644 index 000000000..a2fd10f57 --- /dev/null +++ b/student_registration/enrollments/migrations/0106_enrollment_justified_by.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-04 00:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0105_enrollment_justified_date'), + ] + + operations = [ + migrations.AddField( + model_name='enrollment', + name='justified_by', + field=models.CharField(blank=True, max_length=30, null=True, verbose_name='Justified by'), + ), + ] diff --git a/student_registration/enrollments/migrations/0107_auto_20200317_1935.py b/student_registration/enrollments/migrations/0107_auto_20200317_1935.py new file mode 100644 index 000000000..0fa922e35 --- /dev/null +++ b/student_registration/enrollments/migrations/0107_auto_20200317_1935.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-17 17:35 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('enrollments', '0106_enrollment_justified_by'), + ] + + operations = [ + migrations.AlterField( + model_name='enrollment', + name='justified_by', + field=models.CharField(blank=True, max_length=30, null=True, verbose_name='\u0645\u0628\u0631\u0631'), + ), + migrations.AlterField( + model_name='enrollment', + name='justified_date', + field=models.DateField(blank=True, default=django.utils.timezone.now, null=True, verbose_name='\u0645\u0628\u0631\u0631'), + ), + ] diff --git a/student_registration/enrollments/models.py b/student_registration/enrollments/models.py index 216a859c6..03fb76770 100644 --- a/student_registration/enrollments/models.py +++ b/student_registration/enrollments/models.py @@ -1,14 +1,13 @@ from __future__ import unicode_literals, absolute_import, division import datetime +import django.utils.timezone from django.db import models from django.conf import settings from django.utils.translation import ugettext as _ - from model_utils import Choices from model_utils.models import TimeStampedModel - from student_registration.students.models import Student from student_registration.schools.models import ( School, @@ -17,9 +16,11 @@ ClassRoom, Section, EducationYear, + Coordinator, ) from student_registration.locations.models import Location from student_registration.alp.models import ALPRound, Outreach +from django.core.exceptions import ValidationError class EnrollmentManager(models.Manager): @@ -39,6 +40,28 @@ def get_queryset(self): .filter(disabled=True, dropout_status=False) +class DocumentType(models.Model): + name = models.CharField(blank=True, null=True, max_length=70) + description = models.CharField(blank=True, null=True, max_length=500) + description2 = models.CharField(blank=True, null=True, max_length=200) + + class Meta: + ordering = ['id'] + verbose_name = "Document Type" + verbose_name_plural = "Documents Type" + + def __unicode__(self): + return self.description + + +def validate_file_size(value): + filesize = value.size + if filesize > 250000: + raise ValidationError("The maximum file size that can be uploaded is 250K") + else: + return value + + class Enrollment(TimeStampedModel): """ Captures the details of the child in the cash pilot @@ -74,6 +97,7 @@ class Enrollment(TimeStampedModel): ('out_the_country', _('School out of the country')), ('public_in_country', _('Public school in the country')), ('private_in_country', _('Private school in the country')), + ('CB_ECE', _('CB ECE')), ) SCHOOL_SHIFT = Choices( @@ -442,6 +466,7 @@ class Enrollment(TimeStampedModel): ) last_attendance_date = models.DateField(blank=True, null=True) last_absent_date = models.DateField(blank=True, null=True) + nb_consecutiveabsences =models.IntegerField(blank=True, null=True) dropout_status = models.BooleanField( blank=True, default=False, verbose_name=_('Dropout?') @@ -487,11 +512,60 @@ class Enrollment(TimeStampedModel): null=True, verbose_name=_('Last moved date') ) - + dropout_date = models.DateField( + blank=True, + null=True, + verbose_name=_('dropout date') + ) objects = EnrollmentManager() drop_objects = EnrollmentDropoutManager() disabled_objects = EnrollmentDisabledManager() - + documenttype = models.ForeignKey( + DocumentType, + blank=True, null=True, + verbose_name=_('Document Type'), + related_name='+', + ) + documentnumber = models.CharField( + blank=True, null=True, + max_length=20, + verbose_name=_('Document Nunber'), + ) + documentyear = models.ForeignKey( + EducationYear, + blank=True, null=True, + verbose_name=_('Document Year'), + related_name='+', + ) + document_lastyear = models.ImageField( + upload_to='enr/doc', + blank=True, + null=True, + help_text=_('picture of previous education'), + validators=[validate_file_size] + ) + justificationnumber = models.CharField( + blank=True, null=True, + verbose_name=_('Justification Number'), + max_length=25, + ) + signature_cert_date = models.DateField( + blank=True, + null=True, + verbose_name=_('Signature Date') + ) + is_justified = models.BooleanField(default=False) + justified_date = models.DateField( + blank=True, + null=True, + default=django.utils.timezone.now, + verbose_name=_('Justified Date') + ) + justified_by = models.CharField( + blank=True, null=True, + verbose_name=_('Justified by'), + max_length=30, + ) @property def student_fullname(self): if self.student: @@ -546,6 +620,10 @@ def student_phone_number(self): def student_address(self): return self.student.address + @property + def class_section(self): + return "%s, %s" % (self.classroom, self.section) + @property def cycle(self): if self.classroom_id in [2, 3, 4]: @@ -554,6 +632,8 @@ def cycle(self): return 'Cycle 2' if self.classroom_id in [8, 9, 10]: return 'Cycle 3' + if self.classroom_id == 1: + return 'KG' return '' def grading(self, term): @@ -926,3 +1006,196 @@ class Meta: def __unicode__(self): return str(self.id) + + +class DuplicateStd(TimeStampedModel): + enrollment = models.ForeignKey( + Enrollment, + blank=True, null=True, + related_name='enrollment_id' + ) + owner = models.ForeignKey( + settings.AUTH_USER_MODEL, + blank=False, null=True, + related_name='+', + verbose_name=_('Created by') + ) + is_solved = models.BooleanField(default=False) + remark = models.CharField( + max_length=500, + blank=True, + ) + school_type = models.CharField( + max_length=20, + ) + coordinator = models.ForeignKey( + Coordinator, + blank=True, + null=True, + verbose_name=_('Coordinator') + ) + is_deleted = models.BooleanField(default=False) + current_year = models.CharField( + max_length=10, + default=datetime.datetime.now().year + ) + Level = models.ForeignKey( + ClassLevel, + blank=True, null=True, + related_name='+', + verbose_name=_('Class Level'), + ) + section = models.ForeignKey( + Section, + blank=True, null=True, + related_name='+', + verbose_name=_('Current Section') + ) + classroom = models.ForeignKey( + ClassRoom, + blank=True, null=True, + related_name='+', + verbose_name=_('Current Class') + ) + education_year = models.ForeignKey( + EducationYear, + blank=True, null=True, + related_name='+', + verbose_name=_('Education year') + ) + alp_round = models.ForeignKey( + ALPRound, + blank=True, null=True, + related_name='+', + ) + outreach = models.ForeignKey( + Outreach, + blank=True, null=True, + related_name='outreach_id' + ) + + @property + def student_fullname(self): + if self.enrollment: + if self.enrollment.student: + return self.enrollment.student.full_name + else: + if self.outreach: + if self.outreach.student: + return self.outreach.student.full_name + return '' + + @property + def student_birthday(self): + if self.enrollment: + return self.enrollment.student.birthday + else: + if self.outreach: + return self.outreach.student.birthday + + @property + def student_mother_fullname(self): + if self.enrollment: + if self.enrollment.student: + return self.enrollment.student.mother_fullname + else: + if self.outreach: + if self.outreach.student: + return self.outreach.student.mother_fullname + return '' + + @property + def school_name(self): + if self.enrollment: + if self.enrollment.school: + return self.enrollment.school.name + else: + if self.outreach: + if self.outreach.school: + return self.outreach.school.name + return '' + + @property + def student_id_number(self): + if self.enrollment: + if self.enrollment.student: + return self.enrollment.student.id_number + else: + if self.outreach: + if self.outreach.student: + return self.outreach.student.id_number + return '' + + @property + def student_number(self): + if self.enrollment: + if self.enrollment.student: + return self.enrollment.student.number + else: + if self.outreach: + if self.outreach.student: + return self.outreach.student.number + return '' + + @property + def student_sex(self): + if self.enrollment: + if self.enrollment.student: + return self.enrollment.student.sex + else: + if self.outreach: + if self.outreach.student: + return self.outreach.student.sex + return '' + + @property + def school_location(self): + if self.enrollment: + if self.enrollment.school: + if self.enrollment.school.location: + return self.enrollment.school.location.name + else: + if self.outreach: + if self.outreach.school: + if self.outreach.school.location: + return self.outreach.school.location.name + return '' + + @property + def school_number(self): + if self.enrollment: + if self.enrollment.school: + return self.enrollment.school.number + else: + if self.outreach: + if self.outreach.school: + return self.outreach.school.number + return '' + + @property + def classroom_name(self): + if self.classroom: + return self.classroom.name + return '' + + @property + def section_name(self): + if self.section: + return self.section.name + return '' + + @property + def level_name(self): + if self.Level: + return self.level.name + return '' + + @property + def coordinator_name(self): + if self.coordinator: + return self.coordinator.name + return '' + + class Meta: + verbose_name = 'Duplicated Students' + diff --git a/student_registration/enrollments/serializers.py b/student_registration/enrollments/serializers.py index 47d61dc2b..1d4d8eeca 100644 --- a/student_registration/enrollments/serializers.py +++ b/student_registration/enrollments/serializers.py @@ -1,4 +1,3 @@ - from rest_framework import serializers from .models import Enrollment, LoggingStudentMove, LoggingProgramMove, EnrollmentGrading @@ -54,6 +53,7 @@ class EnrollmentSerializer(serializers.ModelSerializer): student_birthday_month = serializers.CharField(source='student.birthday_month') student_birthday_day = serializers.CharField(source='student.birthday_day') student_place_of_birth = serializers.CharField(source='student.place_of_birth', required=False) + student_recordnumber = serializers.CharField(source='student.recordnumber', required=False) student_age = serializers.CharField(source='student.age', read_only=True) student_phone = serializers.CharField(source='student.phone', required=False) student_phone_prefix = serializers.CharField(source='student.phone_prefix', required=False) @@ -80,13 +80,13 @@ class EnrollmentSerializer(serializers.ModelSerializer): last_school_id = serializers.CharField(source='last_school.id', read_only=True) # last_informal_edu_level_id = serializers.CharField(source='last_informal_edu_level.id', read_only=True) last_informal_edu_round_id = serializers.CharField(source='last_informal_edu_round.id', read_only=True) - last_informal_edu_final_result_id = serializers.CharField(source='last_informal_edu_final_result.id', read_only=True) - + last_informal_edu_final_result_id = serializers.CharField(source='last_informal_edu_final_result.id', + read_only=True) moved = serializers.CharField(read_only=True) - + dropout_status = serializers.CharField(read_only=True) + document_lastyear = serializers.ImageField(read_only=True, source='get_absolute_url') student_outreach_child = serializers.IntegerField(source='student.outreach_child', required=False) student_outreach_child_id = serializers.IntegerField(source='student.outreach_child.id', read_only=True) - csrfmiddlewaretoken = serializers.IntegerField(source='owner.id', read_only=True) save = serializers.IntegerField(source='owner.id', read_only=True) enrollment_id = serializers.IntegerField(source='id', read_only=True) @@ -94,6 +94,17 @@ class EnrollmentSerializer(serializers.ModelSerializer): search_school = serializers.CharField(source='school.id', read_only=True) school_type = serializers.CharField(source='school.name', read_only=True) search_barcode = serializers.CharField(source='outreach_barcode', read_only=True) + student_is_specialneeds = serializers.BooleanField(source='student.is_specialneeds', required=False) + student_specialneeds = serializers.CharField(source='student.specialneeds', required=False) + student_specialneeds_id = serializers.CharField(source='student.specialneeds.id', read_only=True) + student_specialneedsdt = serializers.CharField(source='student.specialneedsdt', required=False) + student_specialneedsdt_id = serializers.CharField(source='student.specialneedsdt.id', read_only=True) + student_is_financialsupport = serializers.BooleanField(source='student.is_financialsupport', required=False) + student_Financialsupport_number = serializers.CharField(source='student.Financialsupport_number', required=False) + student_financialsupport = serializers.CharField(source='student.financialsupport', required=False) + student_financialsupport_id = serializers.CharField(source='student.financialsupport.id', read_only=True) + student_unhcr_family = serializers.CharField(source='student.unhcr_family', required=False) + student_unhcr_personal = serializers.CharField(source='student.unhcr_personal', required=False) def create(self, validated_data): from student_registration.students.serializers import StudentSerializer @@ -109,7 +120,6 @@ def create(self, validated_data): student_serializer = StudentSerializer(data=student_data) student_serializer.is_valid(raise_exception=True) student_serializer.instance = student_serializer.save() - try: instance = Enrollment.objects.create(**validated_data) instance.student = student_serializer.instance @@ -123,20 +133,15 @@ def create(self, validated_data): def update(self, instance, validated_data): student_data = validated_data.pop('student', None) - if student_data: from student_registration.students.serializers import StudentSerializer - student_serializer = StudentSerializer(instance.student, data=student_data) student_serializer.is_valid(raise_exception=True) student_serializer.instance = student_serializer.save() - try: - for key in validated_data: if hasattr(instance, key): setattr(instance, key, validated_data[key]) - instance.save() except Exception as ex: @@ -163,6 +168,7 @@ class Meta: 'student_birthday_month', 'student_birthday_day', 'student_place_of_birth', + 'student_recordnumber', 'student_age', 'student_phone', 'student_phone_prefix', @@ -204,6 +210,7 @@ class Meta: 'last_informal_edu_round_id', 'last_informal_edu_final_result_id', 'moved', + 'dropout_status', 'exam_result_arabic', 'exam_result_language', 'exam_result_education', @@ -238,6 +245,22 @@ class Meta: 'school_type', 'age_min_restricted', 'age_max_restricted', + 'student_is_specialneeds', + 'student_specialneeds', + 'student_specialneedsdt', + 'student_specialneeds_id', + 'student_specialneedsdt_id', + 'student_is_financialsupport', + 'student_Financialsupport_number', + 'student_financialsupport', + 'student_financialsupport_id', + 'student_unhcr_personal', + 'student_unhcr_family', + 'documenttype', + 'documentyear', + 'documentnumber', + 'document_lastyear', + 'signature_cert_date', ) @@ -414,6 +437,7 @@ class Meta: 'moved', 'dropout_status', 'disabled', + 'document_lastyear' ) diff --git a/student_registration/enrollments/tables.py b/student_registration/enrollments/tables.py index 3937d6c2f..1ae8afd1f 100644 --- a/student_registration/enrollments/tables.py +++ b/student_registration/enrollments/tables.py @@ -14,7 +14,9 @@ class Meta: class EnrollmentTable(tables.Table): - + std_image = tables.TemplateColumn(verbose_name=_('Images'), orderable=False, + template_name='enrollments/student_profile.html', + attrs={'url': '/enrollments/modify-images/', 'url2': '/enrollments/clear-images/'}) edit_column = tables.TemplateColumn(verbose_name=_('Edit student'), orderable=False, template_name='enrollments/edit_column.html', attrs={'url': '/enrollments/edit/'}) @@ -23,6 +25,8 @@ class EnrollmentTable(tables.Table): attrs={'url': '/api/enrollments/'}) moved_column = tables.TemplateColumn(verbose_name=_('Student moved'), orderable=False, template_name='django_tables2/moved_column.html') + dropout_column = tables.TemplateColumn(verbose_name=_('dropout students'), orderable=False, + template_name='django_tables2/dropout_column.html') grading_term1 = tables.TemplateColumn(verbose_name=_('Term 1'), orderable=False, template_name='django_tables2/grading_term1_column.html') grading_term2 = tables.TemplateColumn(verbose_name=_('Term 2'), orderable=False, @@ -42,9 +46,11 @@ class Meta: model = Enrollment template = 'django_tables2/bootstrap.html' fields = ( + 'std_image', 'edit_column', 'delete_column', 'moved_column', + 'dropout_column', 'grading_term1', 'grading_term2', 'grading_final', @@ -87,12 +93,70 @@ class Meta: ) -class EnrollmentOldDataTable(tables.Table): +class Enrollment_By_School_Table(tables.Table): + is_verified_column = tables.TemplateColumn(verbose_name=_('Is Justified'), orderable=False, + template_name='django_tables2/is_verified.html') + + edit_column = tables.TemplateColumn(verbose_name=_('Edit student'), orderable=False, + template_name='enrollments/edit_column_region.html', + attrs={'url': '/enrollments/edit_region/'}) + + student_age = tables.Column(verbose_name=_('Age'), accessor='student.age', orderable=False,) + student_birthday = tables.Column(verbose_name=_('Birthday'), accessor='student.birthday', orderable=False,) + student_phone_number = tables.Column(verbose_name=_('Phone number'), accessor='student.phone_number', orderable=False,) + student_registered_in_unhcr = tables.Column(verbose_name=_('Registered in UNHCR'), orderable=False, + accessor='student.registered_in_unhcr') + class Meta: + model = Enrollment + template = 'django_tables2/bootstrap.html' + fields = ( + 'is_verified_column', + 'edit_column', + 'school', + 'registration_date', + 'student.first_name', + 'student.father_name', + 'student.last_name', + 'student.sex', + 'student_age', + 'student_birthday', + 'student.nationality', + 'student.mother_fullname', + 'student.mother_nationality', + 'student_registered_in_unhcr', + 'student.id_type', + 'student.id_number', + 'student.address', + 'student_phone_number', + 'classroom', + 'section', + 'last_education_level', + 'last_school_type', + 'last_school_shift', + 'last_school', + 'last_education_year', + 'last_year_result', + 'participated_in_alp', + 'last_informal_edu_round', + 'last_informal_edu_final_result', + 'new_registry', + 'student_outreached', + 'have_barcode', + 'outreach_barcode', + 'created', + 'modified', + 'dropout_status', + 'disabled', + 'moved', + ) + +class EnrollmentOldDataTable(tables.Table): edit_column = tables.TemplateColumn(verbose_name=_('Edit student'), orderable=False, template_name='django_tables2/edit_column.html', attrs={'url': '/enrollments/edit-old-data/'}) - + grading_incomplete = tables.TemplateColumn(verbose_name=_('Incomplete?'), orderable=False, + template_name='django_tables2/grading_incomplete_column.html') student_age = tables.Column(verbose_name=_('Age'), accessor='student.age', orderable=False,) student_birthday = tables.Column(verbose_name=_('Birthday'), accessor='student.birthday', orderable=False,) student_phone_number = tables.Column(verbose_name=_('Phone number'), accessor='student.phone_number', orderable=False,) @@ -104,6 +168,7 @@ class Meta: template = 'django_tables2/bootstrap.html' fields = ( 'edit_column', + 'grading_incomplete', 'student.first_name', 'student.father_name', 'student.last_name', diff --git a/student_registration/enrollments/urls.py b/student_registration/enrollments/urls.py index a8cd80f36..78a060217 100644 --- a/student_registration/enrollments/urls.py +++ b/student_registration/enrollments/urls.py @@ -16,6 +16,16 @@ view=views.EditView.as_view(), name='edit' ), + url( + regex=r'^edit_region/(?P[\w.@+-]+)/$', + view=views.Edit_RegionView.as_view(), + name='edit_region' + ), + url( + regex=r'^saveimage/(?P[\w.@+-]+)/$', + view=views.Update_Image.as_view(), + name='saveimage' + ), url( regex=r'^edit-old-data/(?P[\w.@+-]+)/$', view=views.EditOldDataView.as_view(), @@ -31,6 +41,11 @@ view=views.ListingView.as_view(), name='list' ), + url( + regex=r'^student_by_regions/$', + view=views.Student_By_Regions.as_view(), + name='student_by_regions' + ), url( regex=r'^list-old-data/$', view=views.ListingOldDataView.as_view(), @@ -61,5 +76,65 @@ view=views.ExportByCycleView.as_view(), name='enrollment_export_by_cycle' ), + url( + regex=r'^saveimage/(?P[\w.@+-]+)/$', + view=views.Clear_Profile.as_view(), + name='clear-profile' + ), + url( + regex=r'^modify-images/(?P[\w.@+-]+)/$', + view=views.Modify_Images_View.as_view(), + name='modify_images' + ), + url( + regex=r'^clear-images/(?P[\w.@+-]+)/$', + view=views.Clear_Images_View.as_view(), + name='clear_images' + ), + url( + regex=r'^empty_profile/$', + view=views.empty_profile, + name='empty_profile' + ), + url( + regex=r'^changing_profile/$', + view=views.changing_profile, + name='changing_profile' + ), + url( + regex=r'^empty_birthdoc/$', + view=views.empty_birthdoc, + name='empty_birthdoc' + ), + url( + regex=r'^changing_birthdoc/$', + view=views.changing_birthdoc, + name='changing_birthdoc' + ), + url( + regex=r'^empty_unhcr/$', + view=views.empty_unhcr, + name='empty_unhcr' + ), + url( + regex=r'^changing_unhcr/$', + view=views.changing_unhcr, + name='changing_unhcr' + ), + url( + regex=r'^empty_doclastyear/$', + view=views.empty_doclastyear, + name='empty_doclastyear' + ), + url( + regex=r'^changing_doclastyear/$', + view=views.changing_doclastyear, + name='changing_doclastyear' + ), + url( + regex=r'^clear_pic/$', + view=views.clear_pic, + name='clear_pic' + ), ] diff --git a/student_registration/enrollments/views.py b/student_registration/enrollments/views.py index 429a39c41..83bd4440e 100644 --- a/student_registration/enrollments/views.py +++ b/student_registration/enrollments/views.py @@ -1,29 +1,28 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import, unicode_literals - -import datetime +from datetime import date import tablib - -from django.views.generic import ListView, FormView, TemplateView, UpdateView +from django.http import Http404, HttpResponse, HttpResponseForbidden +from django.views.generic import ListView, FormView, UpdateView from django.contrib.auth.mixins import LoginRequiredMixin -from django.http import HttpResponse, JsonResponse +from django.http import HttpResponse, JsonResponse, HttpResponseRedirect from django.utils.translation import ugettext as _ from django.db.models import Q - +from django.shortcuts import render, get_object_or_404 from rest_framework import status from rest_framework import viewsets, mixins, permissions from braces.views import GroupRequiredMixin, SuperuserRequiredMixin from import_export.formats import base_formats - +from django.contrib import messages from student_registration.alp.templatetags.util_tags import has_group, is_owner from django_filters.views import FilterView from django_tables2 import MultiTableMixin, RequestConfig, SingleTableView from django_tables2.export.views import ExportMixin -from .filters import EnrollmentFilter, EnrollmentOldDataFilter -from .tables import BootstrapTable, EnrollmentTable, EnrollmentOldDataTable - +from .filters import EnrollmentFilter, EnrollmentOldDataFilter, Enrollment_by_region_Filter +from .tables import BootstrapTable, EnrollmentTable, EnrollmentOldDataTable, Enrollment_By_School_Table +from django.shortcuts import redirect from student_registration.alp.models import Outreach from student_registration.alp.serializers import OutreachSerializer from student_registration.outreach.models import Child @@ -39,10 +38,13 @@ ) from .forms import ( EnrollmentForm, + EnrollmentRegion_Form, GradingTermForm, GradingIncompleteForm, StudentMovedForm, - EditOldDataForm + EditOldDataForm, + ImageStudentForm, + Modify_Images_Form, ) from .serializers import ( EnrollmentSerializer, @@ -161,7 +163,7 @@ def get_context_data(self, **kwargs): def get_form(self, form_class=None): instance = Enrollment.objects.get(id=self.kwargs['pk'], school=self.request.user.school) if self.request.method == "POST": - return EnrollmentForm(self.request.POST, instance=instance) + return EnrollmentForm(self.request.POST, self.request.FILES, instance=instance) else: data = EnrollmentSerializer(instance).data data['student_nationality'] = data['student_nationality_id'] @@ -171,10 +173,61 @@ def get_form(self, form_class=None): def form_valid(self, form): instance = Enrollment.objects.get(id=self.kwargs['pk'], school=self.request.user.school) + + if self.request.FILES: + if self.request.FILES['document_lastyear']: + instance.document_lastyear = self.request.FILES['document_lastyear'] + instance.save() + else: + if instance.document_lastyear: + v = instance.document_lastyear + instance.document_lastyear = v + instance.save() form.save(request=self.request, instance=instance) return super(EditView, self).form_valid(form) +class Edit_RegionView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + template_name = 'bootstrap4/common_form.html' + form_class = EnrollmentRegion_Form + success_url = '/enrollments/student_by_regions/' + group_required = [u"ENROL_EDIT"] + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Edit_RegionView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Enrollment.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + return EnrollmentRegion_Form(self.request.POST, self.request.FILES, instance=instance) + else: + data = EnrollmentSerializer(instance).data + data['student_nationality'] = data['student_nationality_id'] + data['student_mother_nationality'] = data['student_mother_nationality_id'] + data['student_id_type'] = data['student_id_type_id'] + return EnrollmentRegion_Form(data, instance=instance) + + def form_valid(self, form): + instance = Enrollment.objects.get(id=self.kwargs['pk']) + if self.request.FILES: + if self.request.FILES['document_lastyear']: + instance.document_lastyear = self.request.FILES['document_lastyear'] + instance.save() + else: + if instance.document_lastyear: + v = instance.document_lastyear + instance.document_lastyear = v + instance.save() + form.save(request=self.request, instance=instance) + return super(Edit_RegionView, self).form_valid(form) + + class EditOldDataView(LoginRequiredMixin, GroupRequiredMixin, FormView): @@ -279,7 +332,8 @@ def get_queryset(self): education_year = EducationYear.objects.get(current_year=True) return Enrollment.objects.exclude(moved=True).filter( education_year=education_year, - school=self.request.user.school_id + school=self.request.user.school_id, + dropout_status=False ) @@ -331,6 +385,47 @@ class LoggingProgramMoveViewSet(mixins.RetrieveModelMixin, permission_classes = (permissions.IsAuthenticated,) +class StudentDropoutViewSet(mixins.RetrieveModelMixin, + mixins.ListModelMixin, + viewsets.GenericViewSet): + model = Enrollment + queryset = Enrollment.objects.all() + + def get_queryset(self): + if self.request.method in ["PATCH", "POST", "PUT"]: + return self.queryset + + def post(self, request, *args, **kwargs): + if request.POST.get('dropout_status', 0): + enrollment = Enrollment.objects.get(id=request.POST.get('dropout_status', 0)) + dropout_date = request.POST.get('dropout_date', 0) + enrollment.dropout_status = True + enrollment.dropout_date = dropout_date + enrollment.save() + return JsonResponse({'status': status.HTTP_200_OK}) + + +class StudentJustifyViewSet(mixins.RetrieveModelMixin, + mixins.ListModelMixin, + viewsets.GenericViewSet): + model = Enrollment + queryset = Enrollment.objects.all() + + def get_queryset(self): + if self.request.method in ["PATCH", "POST", "PUT"]: + return self.queryset + + def post(self, request, *args, **kwargs): + if request.POST.get('justify_status', 0): + enrollment = Enrollment.objects.get(id=request.POST.get('justify_status', 0)) + justify_date = request.POST.get('justify_date', 0) + enrollment.is_justified = not enrollment.is_justified + enrollment.justified_date = date.today() + enrollment.justified_by = self.request.user.get_full_name() + enrollment.save() + return JsonResponse({'status': status.HTTP_200_OK}) + + class LoggingStudentMoveViewSet(mixins.RetrieveModelMixin, mixins.ListModelMixin, viewsets.GenericViewSet): @@ -344,6 +439,10 @@ def get_queryset(self): if self.request.method in ["PATCH", "POST", "PUT"]: return self.queryset terms = self.request.GET.get('term', 0) + + if '\0' in terms: + terms = '' + current_year = EducationYear.objects.get(current_year=True) if terms: qs = self.queryset.filter( @@ -508,8 +607,8 @@ class ExportViewSet(LoginRequiredMixin, ListView): def get_queryset(self): if not self.request.user.is_staff: - return self.queryset.filter(owner=self.request.user) - return self.queryset + return self.queryset.filter(owner=self.request.user, moved=False) + return self.queryset.filter(moved=False) def get(self, request, *args, **kwargs): school = request.GET.get('school', 0) @@ -520,7 +619,6 @@ def get(self, request, *args, **kwargs): '', content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', ) - if self.request.user.school_id: school = self.request.user.school_id if school: @@ -666,3 +764,249 @@ def get(self, request, *args, **kwargs): ) response['Content-Disposition'] = 'attachment; filename=student_by_cycle.xls' return response + + +class Update_Image(UpdateView): + model = Student + form_class = ImageStudentForm + + template_name = 'students/imagestd.html' + success_url = '/enrollments/list/' + context_object_name = 'student_detail' + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Image, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Student.objects.get(id=self.kwargs['pk']) + + if self.request.method == "POST": + instance = Student.objects.get(id=self.kwargs['pk']) + if self.request.POST.get('birth_documenttype'): + instance.birth_documenttype_id = self.request.POST.get('birth_documenttype') + else: + instance.birth_documenttype_id = '' + + if self.request.FILES: + if self.request.FILES.get('picture', False): + instance.std_image = self.request.FILES['picture'] + if self.request.FILES.get('id_picture', False): + + instance.id_image = self.request.FILES['id_picture'] + if self.request.FILES.get('unhcr_picture', False): + instance.unhcr_image = self.request.FILES['unhcr_picture'] + if self.request.FILES.get('birthdoc_picture', False): + instance.birthdoc_image = self.request.FILES['birthdoc_picture'] + instance.save() + #return ImageStudentForm(self.request.POST, instance=instance) + #else: + return ImageStudentForm(instance=instance) + else: + return ImageStudentForm(instance=instance) + + +class Clear_Profile(UpdateView): + model = Student + form_class = ImageStudentForm + + template_name = 'students/imagestd.html' + success_url = '/enrollments/list/' + context_object_name = 'student_detail' + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Image, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Student.objects.get(id=self.kwargs['pk']) + + if self.request.method == "POST": + instance = Student.objects.get(id=self.kwargs['pk']) + instance.save() + return ImageStudentForm(instance=instance) + else: + return ImageStudentForm(instance=instance) + + +class Modify_Images_View(UpdateView): + template_name = 'enrollments/modifying_images.html' + success_url = '/enrollments/list/' + context_object_name = 'student_images' + model = Enrollment + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + from student_registration.students.models import Birth_DocumentType + + return { + 'documenttype': Birth_DocumentType.objects.all(), + 'student_images': Enrollment.objects.filter(id=self.kwargs['pk']) + } + + def get_form(self, form_class=None): + instance = Enrollment.objects.get(id=self.kwargs['pk'], school=self.request.user.school) + if self.request.method == "POST": + return Modify_Images_View(self.request.POST, self.request.FILES, instance=instance) + else: + return Modify_Images_View(instance=instance) + + +class Clear_Images_View(UpdateView): + template_name = 'enrollments/clear_images.html' + success_url = '/enrollments/list/' + context_object_name = 'student_images' + model = Enrollment + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Clear_Images_View, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Enrollment.objects.get(id=self.kwargs['pk'], school=self.request.user.school) + if self.request.method == "POST": + return Clear_Images_View(self.request.POST, self.request.FILES, instance=instance) + else: + return Clear_Images_View(instance=instance) + + +def empty_profile(request, *args): + from student_registration.students.models import Student + + std = Student.objects.get(id=request.POST['txt_id_del']) + std.std_image = None + std.save() + return HttpResponse('Profile picture has been successfully cleaned ') + + +def changing_profile(request, *args): + from student_registration.students.models import Student + if request.method == 'POST': + form = Modify_Images_Form(request.POST, request.FILES) + if request.FILES: + std = Student.objects.get(pk=request.POST['txt_id_img']) + std.std_image = request.FILES['image_profile'] + std.save() + return HttpResponseForbidden('Profile picture has been successfully changed') + + +def empty_birthdoc(request, *args): + from student_registration.students.models import Student + + std = Student.objects.get(id=request.POST['txt_id_del_birthdoc']) + std.birthdoc_image = None + std.save() + return HttpResponse('Document type picture has been successfully cleaned ') + + +def changing_birthdoc(request, *args): + from student_registration.students.models import Student, Birth_DocumentType + if request.method == 'POST': + form = Modify_Images_Form(request.POST, request.FILES) + std = Student.objects.get(pk=request.POST['txt_id_img_birthdoc']) + if request.FILES: + std.birthdoc_image = request.FILES['image_birthdoc'] + if request.POST.get('cb_documenttype', False): + std.birth_documenttype = Birth_DocumentType.objects.get(id=request.POST['cb_documenttype']) + std.save() + return HttpResponseForbidden('Document type picture has been successfully changed') + + +def empty_unhcr(request, *args): + from student_registration.students.models import Student + + std = Student.objects.get(id=request.POST['txt_id_del_unhcr']) + std.unhcr_image = None + std.save() + return HttpResponse('UNHCR picture has been successfully cleaned ') + + +def changing_unhcr(request, *args): + from student_registration.students.models import Student + if request.method == 'POST': + form = Modify_Images_Form(request.POST, request.FILES) + if request.FILES: + std = Student.objects.get(pk=request.POST['txt_id_img_unhcr']) + std.unhcr_image = request.FILES['image_unhcr'] + std.save() + return HttpResponseForbidden('UNHCR picture has been successfully changed') + + +def empty_doclastyear(request, *args): + from student_registration.enrollments.models import Enrollment + + enr = Enrollment.objects.get(id=request.POST['txt_id_del_doclastyear']) + enr.document_lastyear = None + enr.save() + return HttpResponse('Document of the last year picture has been successfully cleaned ') + + +def changing_doclastyear(request, *args): + from student_registration.enrollments.models import Enrollment, DocumentType + if request.method == 'POST': + form = Modify_Images_Form(request.POST, request.FILES) + enr = Enrollment.objects.get(pk=request.POST['txt_id_img_doclastyear']) + if request.FILES: + enr.document_lastyear = request.FILES['image_doclastyear'] + enr.save() + return HttpResponseForbidden('Document of the last year picture has been successfully changed') + + +def clear_pic(request, *args): + from student_registration.enrollments.models import Enrollment + if request.POST.get('chk_doclastyear', False): + enr = Enrollment.objects.get(id=request.POST['txt_id']) + enr.document_lastyear = None + enr.signature_cert_date = None + enr.save() + + if request.POST.get('chk_profile', False) or request.POST.get('chk_document', False) or request.POST.get('chk_unhcr', False): + std = Student.objects.get(id=request.POST['txt_studentid']) + if request.POST.get('chk_profile', False): + std.std_image = None + std.save() + if request.POST.get('chk_document', False): + std.birthdoc_image = None + std.save() + if request.POST.get('chk_unhcr', False): + std.unhcr_image = None + std.save() + return HttpResponse('Picture has been successfully cleaned ') + + +class Student_By_Regions(LoginRequiredMixin, + GroupRequiredMixin, + FilterView, + ExportMixin, + SingleTableView, + RequestConfig): + + table_class = Enrollment_By_School_Table + model = Enrollment + template_name = 'enrollments/list.html' + table = BootstrapTable(Enrollment.objects.all(), order_by='id') + filterset_class = Enrollment_by_region_Filter + group_required = [u"ADMIN_RE"] + + def get_queryset(self): + force_default_language(self.request) + education_year = EducationYear.objects.get(current_year=True) + return Enrollment.objects.filter( + education_year=education_year, + school__location__in=self.request.user.regions.all(), + ).order_by('school_id', 'classroom_id', 'section_id', 'student') + diff --git a/student_registration/hsts_middleware.py b/student_registration/hsts_middleware.py new file mode 100755 index 000000000..e69f49ae0 --- /dev/null +++ b/student_registration/hsts_middleware.py @@ -0,0 +1,11 @@ +class HSTSMiddleware: + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + response = self.get_response(request) + + if request.is_secure: + response['Strict-Transport-Security'] = 'max-age=2592000; includeSubdomains' + + return response diff --git a/student_registration/locations/admin.py b/student_registration/locations/admin.py index ab18b5a15..a1df6149d 100644 --- a/student_registration/locations/admin.py +++ b/student_registration/locations/admin.py @@ -18,6 +18,7 @@ class Meta: fields = ( 'id', 'name', + 'name_en', 'type', 'parent', 'latitude', diff --git a/student_registration/locations/migrations/0006_auto_20191219_1302.py b/student_registration/locations/migrations/0006_auto_20191219_1302.py new file mode 100644 index 000000000..f9a04581a --- /dev/null +++ b/student_registration/locations/migrations/0006_auto_20191219_1302.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-12-19 11:02 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('locations', '0005_auto_20170731_2134'), + ] + + operations = [ + migrations.AddField( + model_name='location', + name='name_en', + field=models.CharField(blank=True, max_length=254, null=True), + ), + migrations.AddField( + model_name='locationtype', + name='name_en', + field=models.CharField(blank=True, max_length=145, null=True), + ), + ] diff --git a/student_registration/locations/models.py b/student_registration/locations/models.py index aa196ff4c..c9516fb8b 100644 --- a/student_registration/locations/models.py +++ b/student_registration/locations/models.py @@ -9,6 +9,7 @@ class LocationType(models.Model): name = models.CharField(max_length=64, unique=True) + name_en = models.CharField(max_length=145, blank=True, null=True) class Meta: ordering = ['name'] @@ -21,6 +22,7 @@ def __unicode__(self): class Location(MPTTModel): name = models.CharField(max_length=254) + name_en = models.CharField(max_length=254, blank=True, null=True) type = models.ForeignKey(LocationType, verbose_name='Location Type') latitude = models.FloatField(null=True, blank=True) longitude = models.FloatField(null=True, blank=True) diff --git a/student_registration/lockout_middleware.py b/student_registration/lockout_middleware.py new file mode 100755 index 000000000..e74509155 --- /dev/null +++ b/student_registration/lockout_middleware.py @@ -0,0 +1,50 @@ + +from threading import local +thread_namespace = local() + + +class StudentLockoutMiddleware(object): + """Decorates django.contrib.auth.authenticate with enforce_lockout, and + adds the request to thread local so the decorator can access request + details. + """ + + __state = {} # Borg pattern + + def __init__(self, get_response=None): + self.__dict__ = self.__state + + self.get_response = get_response + super(StudentLockoutMiddleware, self).__init__() + + self.installed = getattr(self, 'installed', False) + if not self.installed: + # Import here to avoid circular import. + from lockout.decorators import enforce_lockout + from django.contrib import auth + auth.authenticate = enforce_lockout(auth.authenticate) + self.installed = True + + def __call__(self, request): + response = None + if hasattr(self, 'process_request'): + response = self.process_request(request) + if not response: + response = self.get_response(request) + if hasattr(self, 'process_response'): + response = self.process_response(request, response) + return response + + + def process_request(self, request): + thread_namespace.lockoutrequest = request + + def process_response(self, request, response): + # If a previous middleware returned a response or raised an exception, + # our process_request won't have gotten called, so check before + # deleting. + if hasattr(thread_namespace, 'lockoutrequest'): + delattr(thread_namespace, 'lockoutrequest') + return response + +######################################################################## diff --git a/student_registration/middleware.py b/student_registration/middleware.py new file mode 100755 index 000000000..22459099c --- /dev/null +++ b/student_registration/middleware.py @@ -0,0 +1,35 @@ +from datetime import datetime, timedelta +from django.conf import settings +from django.contrib import auth + + +class AutoLogout(object): + + def __init__(self, get_response=None): + self.get_response = get_response + super(AutoLogout, self).__init__() + + def __call__(self, request): + response = None + if hasattr(self, 'process_request'): + response = self.process_request(request) + if not response: + response = self.get_response(request) + if hasattr(self, 'process_response'): + response = self.process_response(request, response) + return response + + def process_request(self, request): + if not request.user.is_authenticated() : + #Can't log out if not logged in + return + + try: + if datetime.now() - request.session['last_touch'] > timedelta( 0, settings.AUTO_LOGOUT_DELAY * 60, 0): + auth.logout(request) + del request.session['last_touch'] + return + except KeyError: + pass + + request.session['last_touch'] = datetime.now() diff --git a/student_registration/one_session.py b/student_registration/one_session.py new file mode 100755 index 000000000..68d633817 --- /dev/null +++ b/student_registration/one_session.py @@ -0,0 +1,30 @@ +#Session model stores the session data +from django.contrib.sessions.models import Session + +class OneSessionPerUserMiddleware: + # Called only once when the web server starts + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + # Code to be executed for each request before + # the view (and later middleware) are called. + if request.user.is_authenticated: + stored_session_key = request.user.logged_in_user.session_key + + # if there is a stored_session_key in our database and it is + # different from the current session, delete the stored_session_key + # session_key with from the Session table + if stored_session_key and stored_session_key != request.session.session_key: + Session.objects.get(session_key=stored_session_key).delete() + + request.user.logged_in_user.session_key = request.session.session_key + request.user.logged_in_user.save() + + response = self.get_response(request) + + # This is where you add any extra code to be executed for each request/response after + # the view is called. + # For this tutorial, we're not adding any code so we just return the response + + return response diff --git a/student_registration/outreach/migrations/0027_child_std_phone.py b/student_registration/outreach/migrations/0027_child_std_phone.py new file mode 100644 index 000000000..fc53cc47b --- /dev/null +++ b/student_registration/outreach/migrations/0027_child_std_phone.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-01 14:28 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('outreach', '0026_auto_20171201_1705'), + ] + + operations = [ + migrations.AddField( + model_name='child', + name='std_phone', + field=models.CharField(blank=True, max_length=74, null=True), + ), + ] diff --git a/student_registration/outreach/migrations/0028_child_recordnumber.py b/student_registration/outreach/migrations/0028_child_recordnumber.py new file mode 100644 index 000000000..a7981faef --- /dev/null +++ b/student_registration/outreach/migrations/0028_child_recordnumber.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-29 09:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('outreach', '0027_child_std_phone'), + ] + + operations = [ + migrations.AddField( + model_name='child', + name='recordnumber', + field=models.CharField(blank=True, max_length=45, null=True), + ), + ] diff --git a/student_registration/outreach/migrations/0029_auto_20190929_1251.py b/student_registration/outreach/migrations/0029_auto_20190929_1251.py new file mode 100644 index 000000000..095f15c31 --- /dev/null +++ b/student_registration/outreach/migrations/0029_auto_20190929_1251.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-29 09:51 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('outreach', '0028_child_recordnumber'), + ] + + operations = [ + migrations.AlterField( + model_name='child', + name='recordnumber', + field=models.CharField(blank=True, max_length=45, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u0633\u062c\u0644'), + ), + ] diff --git a/student_registration/outreach/migrations/0030_auto_20191008_1151.py b/student_registration/outreach/migrations/0030_auto_20191008_1151.py new file mode 100644 index 000000000..d82ae6929 --- /dev/null +++ b/student_registration/outreach/migrations/0030_auto_20191008_1151.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-10-08 08:51 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('outreach', '0029_auto_20190929_1251'), + ] + + operations = [ + migrations.AlterField( + model_name='child', + name='recordnumber', + field=models.CharField(blank=True, max_length=45, null=True, verbose_name='\u0631\u0642\u0645 \u062a\u0633\u0644\u0633\u0644\u064a \u062e\u0627\u0635 \u0628\u0627\u0644\u062c\u0645\u0639\u064a\u0629'), + ), + ] diff --git a/student_registration/outreach/tasks.py b/student_registration/outreach/tasks.py index 8954b0456..01e779972 100644 --- a/student_registration/outreach/tasks.py +++ b/student_registration/outreach/tasks.py @@ -141,20 +141,20 @@ def post_data(protocol, url, apifunc, token, data): headers = {"Content-type": "application/json", "Authorization": token, "HTTP_REFERER": url, "Cookie": "token="+token} - if protocol == 'HTTPS': - conn = httplib.HTTPSConnection(url) - else: - conn = httplib.HTTPConnection(url) - conn.request('POST', apifunc, params, headers) - response = conn.getresponse() - result = response.read() - - if not response.status == 201: - if response.status == 400: - raise Exception(str(response.status) + response.reason + response.read()) - else: - raise Exception(str(response.status) + response.reason) - - conn.close() - - return result + # if protocol == 'HTTPS': + # conn = httplib.HTTPSConnection(url) + # else: + # conn = httplib.HTTPConnection(url) + # conn.request('POST', apifunc, params, headers) + # response = conn.getresponse() + # result = response.read() + # + # if not response.status == 201: + # if response.status == 400: + # raise Exception(str(response.status) + response.reason + response.read()) + # else: + # raise Exception(str(response.status) + response.reason) + # + # conn.close() + # + # return result diff --git a/student_registration/password_validators.py b/student_registration/password_validators.py new file mode 100755 index 000000000..e3aa0b76d --- /dev/null +++ b/student_registration/password_validators.py @@ -0,0 +1,66 @@ +import re + +from django.core.exceptions import ValidationError +from django.utils.translation import ugettext as _ + + +class NumberValidator(object): + def __init__(self, min_digits=0): + self.min_digits = min_digits + + def validate(self, password, user=None): + if not len(re.findall('\d', password)) >= self.min_digits: + raise ValidationError( + _("The password must contain at least %(min_digits)d digit(s), 0-9."), + code='password_no_number', + params={'min_digits': self.min_digits}, + ) + + def get_help_text(self): + return _( + "Your password must contain at least %(min_digits)d digit(s), 0-9." % {'min_digits': self.min_digits} + ) + + +class UppercaseValidator(object): + def validate(self, password, user=None): + if not re.findall('[A-Z]', password): + raise ValidationError( + _("The password must contain at least 1 uppercase letter, A-Z."), + code='password_no_upper', + ) + + def get_help_text(self): + return _( + "Your password must contain at least 1 uppercase letter, A-Z." + ) + + +class LowercaseValidator(object): + def validate(self, password, user=None): + if not re.findall('[a-z]', password): + raise ValidationError( + _("The password must contain at least 1 lowercase letter, a-z."), + code='password_no_lower', + ) + + def get_help_text(self): + return _( + "Your password must contain at least 1 lowercase letter, a-z." + ) + + +class SymbolValidator(object): + def validate(self, password, user=None): + if not re.findall('[()[\]{}|\\`~!@#$%^&*_\-+=;:\'",<>./?]', password): + raise ValidationError( + _("The password must contain at least 1 symbol: " + + "()[]{}|\`~!@#$%^&*_-+=;:'\",<>./?"), + code='password_no_symbol', + ) + + def get_help_text(self): + return _( + "Your password must contain at least 1 symbol: " + + "()[]{}|\`~!@#$%^&*_-+=;:'\",<>./?" + ) diff --git a/student_registration/schools/admin.py b/student_registration/schools/admin.py index b6887a85f..6b344257a 100644 --- a/student_registration/schools/admin.py +++ b/student_registration/schools/admin.py @@ -20,7 +20,11 @@ EducationalLevel, Holiday, CLMRound, - PublicDocument + PublicDocument, + Coordinator, + Evaluation, + PublicHolidays, + Schl_Subject, ) from student_registration.locations.models import Location @@ -37,7 +41,11 @@ class SchoolResource(resources.ModelResource): attendances_days_2ndshift = fields.Field(column_name='Attendances days 2nd shift') attendances_days_2ndshift_open = fields.Field(column_name='Attendances days 2nd shift when school is open') attendances_days_alp = fields.Field(column_name='Attendances days ALP') + total_attendances_days_alp = fields.Field(column_name='Total Attendances days ALP') attendances_days_alp_open = fields.Field(column_name='Attendances days ALP when school is open') + total_attendances_days_alp_open = fields.Field(column_name='Total Attendances days ALP when school is open') + total_attendances_days_2ndshift = fields.Field(column_name='Total attendance days in 2ndshift') + total_attendances_days_2ndshift_open = fields.Field(column_name='Total attendance days in 2ndshift is open') class Meta: model = School @@ -57,7 +65,8 @@ class Meta: 'weekend', 'it_name', 'it_phone_number', - 'field_coordinator_name', + #'field_coordinator_name', + 'coordinator', 'total_registered_2ndshift', 'total_registered_2ndshift_male', 'total_registered_2ndshift_female', @@ -77,6 +86,11 @@ class Meta: 'attendances_days_2ndshift_open', 'attendances_days_alp', 'attendances_days_alp_open', + 'total_attendances_days_2ndshift', + 'total_attendances_days_alp', + 'total_attendances_days_alp_open', + 'total_attendances_days_2ndshift_open', + 'is_closed', ) export_order = fields @@ -93,6 +107,18 @@ def dehydrate_governorate(self, obj): def dehydrate_total_registered_2ndshift(self, obj): return obj.total_registered + def dehydrate_total_attendances_days_2ndshif(self, obj): + return obj.total_attendances_days_2ndshif + + def dehydrate_total_attendances_days_alp(self, obj): + return obj.total_attendances_days_alp + + def dehydrate_total_attendances_days_alp_open(self, obj): + return obj.total_attendances_days_alp_open + + def dehydrate_total_attendances_days_2ndshift_open(self, obj): + return obj.total_attendances_days_2ndshift_open + def dehydrate_total_registered_2ndshift_male(self, obj): return obj.total_registered_2ndshift_male @@ -211,10 +237,15 @@ class SchoolAdmin(ImportExportModelAdmin): 'weekend', 'it_name', 'it_phone_number', - 'field_coordinator_name', + 'coordinator', 'academic_year_start', 'academic_year_end', 'academic_year_exam_end', + 'is_closed', + #'total_attendances_days_2ndshift', + #'total_attendances_days_2ndshift_open', + #'total_attendances_days_alp', + #'total_attendances_days_alp_open', ) list_display = ( 'name', @@ -228,6 +259,13 @@ class SchoolAdmin(ImportExportModelAdmin): 'total_registered_alp', 'attendance_range', 'attendance_from_beginning', + 'weekend', + 'academic_year_start', + 'total_attendances_days_2ndshift', + 'total_attendances_days_2ndshift_open', + 'total_attendances_days_alp', + 'total_attendances_days_alp_open', + 'is_closed', ) search_fields = ( 'name', @@ -242,6 +280,7 @@ class SchoolAdmin(ImportExportModelAdmin): 'is_alp', 'is_2nd_shift', 'weekend', + 'is_closed', ) date_hierarchy = 'academic_year_start' @@ -344,6 +383,7 @@ class ClassRoomAdmin(ImportExportModelAdmin): resource_class = ClassRoomResource fields = ( 'name', + 'classroom_type', ) list_display = fields @@ -405,11 +445,13 @@ class ALPAssignmentMatrixAdmin(ImportExportModelAdmin): 'range_start', 'range_end', 'refer_to', + 'matrix_type', ) list_display = ( 'level', 'range', 'refer_to', + 'matrix_type', ) def get_export_formats(self): @@ -449,6 +491,13 @@ class Meta: class CLMRoundAdmin(ImportExportModelAdmin): resource_class = CLMRoundResource + list_display = ( + 'name', + 'current_round_bln', + 'current_round_abln', + 'current_round_cbece', + ) + class EducationalLevelResource(resources.ModelResource): class Meta: @@ -460,10 +509,297 @@ class Meta: export_order = fields -class EducationalLevelAdmin(ImportExportModelAdmin): - resource_class = EducationalLevelResource +class EvaluationResource(resources.ModelResource): + + class Meta: + model = Evaluation + fields = ( + 'owner', + 'school', + 'school__location', + 'school__number', + 'school__name', + 'total_teaching_days', + 'total_teaching_days_tillnow', + 'implemented_de', + 'reasons_no_de', + 'challenges_de', + 'steps_de', + 'evaluate_steps_de', + 'other_notes_de', + + 'c1_eng_completed', + 'c1_eng_completed_de', + 'c1_eng_remaining_de', + 'c1_fr_completed', + 'c1_fr_completed_de', + 'c1_fr_remaining_de', + 'c1_math_completed', + 'c1_math_completed_de', + 'c1_math_remaining_de', + 'c1_sc_completed', + 'c1_sc_completed_de', + 'c1_sc_remaining_de', + 'c1_ara_completed', + 'c1_ara_completed_de', + 'c1_ara_remaining_de', + 'c1_civic_completed', + 'c1_civic_completed_de', + 'c1_civic_remaining_de', + 'c1_geo_completed', + 'c1_geo_completed_de', + 'c1_geo_remaining_de', + + 'c2_eng_completed', + 'c2_eng_completed_de', + 'c2_eng_remaining_de', + 'c2_fr_completed', + 'c2_fr_completed_de', + 'c2_fr_remaining_de', + 'c2_math_completed', + 'c2_math_completed_de', + 'c2_math_remaining_de', + 'c2_sc_completed', + 'c2_sc_completed_de', + 'c2_sc_remaining_de', + 'c2_ara_completed', + 'c2_ara_completed_de', + 'c2_ara_remaining_de', + 'c2_civic_completed', + 'c2_civic_completed_de', + 'c2_civic_remaining_de', + 'c2_geo_completed', + 'c2_geo_completed_de', + 'c2_geo_remaining_de', + 'implemented_de_2', + 'reasons_no_de_2', + 'challenges_de_2', + 'steps_de_2', + 'evaluate_steps_de_2', + 'implemented_de_3', + 'reasons_no_de_3', + 'challenges_de_3', + 'steps_de_3', + 'evaluate_steps_de_3', + + 'c3_eng_completed', + 'c3_eng_completed_de', + 'c3_eng_remaining_de', + 'c3_fr_completed', + 'c3_fr_completed_de', + 'c3_fr_remaining_de', + 'c3_math_completed', + 'c3_math_completed_de', + 'c3_math_remaining_de', + 'c3_sc_completed', + 'c3_sc_completed_de', + 'c3_sc_remaining_de', + 'c3_ara_completed', + 'c3_ara_completed_de', + 'c3_ara_remaining_de', + 'c3_civic_completed', + 'c3_civic_completed_de', + 'c3_civic_remaining_de', + 'c3_geo_completed', + 'c3_geo_completed_de', + 'c3_geo_remaining_de', + + 'implemented_de_3', + 'reasons_no_de_3', + 'challenges_de_3', + 'steps_de_3', + 'evaluate_steps_de_3', + + 'c4_eng_completed', + 'c4_eng_completed_de', + 'c4_eng_remaining_de', + 'c4_fr_completed', + 'c4_fr_completed_de', + 'c4_fr_remaining_de', + 'c4_math_completed', + 'c4_math_completed_de', + 'c4_math_remaining_de', + 'c4_sc_completed', + 'c4_sc_completed_de', + 'c4_sc_remaining_de', + 'c4_ara_completed', + 'c4_ara_completed_de', + 'c4_ara_remaining_de', + 'c4_civic_completed', + 'c4_civic_completed_de', + 'c4_civic_remaining_de', + 'c4_geo_completed', + 'c4_geo_completed_de', + 'c4_geo_remaining_de', + + 'c5_eng_completed', + 'c5_eng_completed_de', + 'c5_eng_remaining_de', + 'c5_fr_completed', + 'c5_fr_completed_de', + 'c5_fr_remaining_de', + 'c5_math_completed', + 'c5_math_completed_de', + 'c5_math_remaining_de', + 'c5_sc_completed', + 'c5_sc_completed_de', + 'c5_sc_remaining_de', + 'c5_ara_completed', + 'c5_ara_completed_de', + 'c5_ara_remaining_de', + 'c5_civic_completed', + 'c5_civic_completed_de', + 'c5_civic_remaining_de', + 'c5_geo_completed', + 'c5_geo_completed_de', + 'c5_geo_remaining_de', + + 'c6_eng_completed', + 'c6_eng_completed_de', + 'c6_eng_remaining_de', + 'c6_fr_completed', + 'c6_fr_completed_de', + 'c6_fr_remaining_de', + 'c6_math_completed', + 'c6_math_completed_de', + 'c6_math_remaining_de', + 'c6_sc_completed', + 'c6_sc_completed_de', + 'c6_sc_remaining_de', + 'c6_ara_completed', + 'c6_ara_completed_de', + 'c6_ara_remaining_de', + 'c6_civic_completed', + 'c6_civic_completed_de', + 'c6_civic_remaining_de', + 'c6_geo_completed', + 'c6_geo_completed_de', + 'c6_geo_remaining_de', + + 'c7_eng_completed', + 'c7_eng_completed_de', + 'c7_eng_remaining_de', + 'c7_fr_completed', + 'c7_fr_completed_de', + 'c7_fr_remaining_de', + 'c7_math_completed', + 'c7_math_completed_de', + 'c7_math_remaining_de', + 'c7_sc_completed', + 'c7_sc_completed_de', + 'c7_sc_remaining_de', + 'c7_ara_completed', + 'c7_ara_completed_de', + 'c7_ara_remaining_de', + 'c7_civic_completed', + 'c7_civic_completed_de', + 'c7_civic_remaining_de', + 'c7_geo_completed', + 'c7_geo_completed_de', + 'c7_geo_remaining_de', + + 'c8_eng_completed', + 'c8_eng_completed_de', + 'c8_eng_remaining_de', + 'c8_fr_completed', + 'c8_fr_completed_de', + 'c8_fr_remaining_de', + 'c8_math_completed', + 'c8_math_completed_de', + 'c8_math_remaining_de', + 'c8_sc_completed', + 'c8_sc_completed_de', + 'c8_sc_remaining_de', + 'c8_ara_completed', + 'c8_ara_completed_de', + 'c8_ara_remaining_de', + 'c8_civic_completed', + 'c8_civic_completed_de', + 'c8_civic_remaining_de', + 'c8_geo_completed', + 'c8_geo_completed_de', + 'c8_geo_remaining_de', + + 'c9_eng_completed', + 'c9_eng_completed_de', + 'c9_eng_remaining_de', + 'c9_fr_completed', + 'c9_fr_completed_de', + 'c9_fr_remaining_de', + 'c9_math_completed', + 'c9_math_completed_de', + 'c9_math_remaining_de', + 'c9_sc_completed', + 'c9_sc_completed_de', + 'c9_sc_remaining_de', + 'c9_ara_completed', + 'c9_ara_completed_de', + 'c9_ara_remaining_de', + 'c9_civic_completed', + 'c9_civic_completed_de', + 'c9_civic_remaining_de', + 'c9_geo_completed', + 'c9_geo_completed_de', + 'c9_geo_remaining_de', + + 'cprep_eng_completed', + 'cprep_eng_completed_de', + 'cprep_eng_remaining_de', + 'cprep_fr_completed', + 'cprep_fr_completed_de', + 'cprep_fr_remaining_de', + 'cprep_math_completed', + 'cprep_math_completed_de', + 'cprep_math_remaining_de', + 'cprep_sc_completed', + 'cprep_sc_completed_de', + 'cprep_sc_remaining_de', + 'cprep_ara_completed', + 'cprep_ara_completed_de', + 'cprep_ara_remaining_de', + 'cprep_civic_completed', + 'cprep_civic_completed_de', + 'cprep_civic_remaining_de', + 'cprep_geo_completed', + 'cprep_geo_completed_de', + 'cprep_geo_remaining_de', + 'c9_total_std', + 'c9_total_std_de', + 'implemented_de_9', + 'reasons_no_de_9', + 'challenges_de_9', + 'steps_de_9', + 'evaluate_steps_de_9', + 'implemented_de_prep', + 'reasons_no_de_prep', + 'challenges_de_prep', + 'steps_de_prep', + 'evaluate_steps_de_prep', + 'c9_total_teachers', + 'c9_total_teachers_de', + + + ) + list_display = fields + + export_order = fields + + +class EvaluationAdmin(ImportExportModelAdmin): + resource_class = EvaluationResource + class Meta: + model = Evaluation + list_filter = ( + 'school', + 'school__location', + 'school__number', + 'school__name', + ) + +class EducationalLevelAdmin(ImportExportModelAdmin): + resource_class = EducationalLevelResource admin.site.register(School, SchoolAdmin) admin.site.register(EducationLevel, EducationLevelAdmin) admin.site.register(ClassLevel, ClassLevelAdmin) @@ -477,11 +813,7 @@ class EducationalLevelAdmin(ImportExportModelAdmin): admin.site.register(PublicDocument, PublicDocumentAdmin) admin.site.register(EducationalLevel, EducationalLevelAdmin) admin.site.register(ALPAssignmentMatrix, ALPAssignmentMatrixAdmin) - - - - - - - - +admin.site.register(Coordinator) +admin.site.register(Schl_Subject) +admin.site.register(Evaluation, EvaluationAdmin) +admin.site.register(PublicHolidays) diff --git a/student_registration/schools/forms.py b/student_registration/schools/forms.py index 40d3860ea..9031bd16f 100644 --- a/student_registration/schools/forms.py +++ b/student_registration/schools/forms.py @@ -2,14 +2,15 @@ from django.utils.translation import ugettext as _ from django import forms +from django.forms import modelformset_factory from django.core.urlresolvers import reverse from django.contrib import messages - +from django.shortcuts import render from crispy_forms.helper import FormHelper from crispy_forms.bootstrap import FormActions, Accordion, PrependedText, InlineCheckboxes, InlineRadios -from crispy_forms.layout import Layout, Fieldset, Button, Submit, Div, Field, HTML +from crispy_forms.layout import Layout, Fieldset, Button, Submit, Div, Field, HTML, ButtonHolder -from .models import School, PartnerOrganization, EducationYear +from .models import School, PartnerOrganization, EducationYear, Evaluation class ProfileForm(forms.ModelForm): @@ -54,7 +55,6 @@ def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.form_show_labels = True self.helper.form_action = reverse('schools:profile', kwargs={}) - self.helper.layout = Layout( Fieldset( None, @@ -92,7 +92,7 @@ def __init__(self, *args, **kwargs): HTML('10'), Div('it_phone_number', css_class='col-md-3'), HTML('11'), - Div('field_coordinator_name', css_class='col-md-3'), + Div('coordinator', css_class='col-md-3'), css_class='row', ), Div( @@ -111,6 +111,34 @@ def __init__(self, *args, **kwargs): ), css_class='bd-callout bd-callout-warning' ), + Fieldset( + None, + Div( + HTML('

' + + _('Bank Accounts Information') + '

') + ), + Div( + HTML('1'), + Div('iban_base1', css_class='col-md-5'), + + HTML('2'), + Div('bank_Base1', css_class='col-md-3'), + HTML('3'), + Div('branch_base1', css_class='col-md-3'), + css_class='row', + ), + Div( + HTML('4'), + Div('iban_base2', css_class='col-md-5'), + + HTML('5'), + Div('bank_Base2', css_class='col-md-3'), + HTML('6'), + Div('branch_base2', css_class='col-md-3'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), Fieldset( None, Div( @@ -148,7 +176,8 @@ class Meta: 'director_phone_number', 'it_name', 'it_phone_number', - 'field_coordinator_name', + #'field_coordinator_name', + 'coordinator', 'fax_number', 'email', 'certified_foreign_language', @@ -158,6 +187,12 @@ class Meta: 'is_alp', 'number_students_2nd_shift', 'number_students_alp', + 'bank_Base1', + 'branch_base1', + 'iban_base1', + 'bank_Base2', + 'branch_base2', + 'iban_base2', ) initial_fields = fields widgets = {} @@ -213,3 +248,2932 @@ class Meta: class Media: js = () + + +class EvaluationForm(forms.ModelForm): + + def __init__(self, *args, **kwargs): + super(EvaluationForm, self).__init__(*args, **kwargs) + + self.helper = FormHelper() + self.helper.form_show_labels = True + self.helper.form_action = reverse('schools:evaluation', kwargs={}) + self.fields['implemented_de_prep'].label = '' + self.fields['reasons_no_de_prep'].label = False + + self.fields['implemented_de'].label = '' + self.fields['reasons_no_de'].label = False + + self.fields['implemented_de_2'].label = '' + self.fields['reasons_no_de_2'].label = False + + self.fields['implemented_de_3'].label = '' + self.fields['reasons_no_de_3'].label = False + + self.fields['implemented_de_9'].label = '' + self.fields['reasons_no_de_9'].label = False + + self.fields['implemented_de_prep'].label = '' + self.fields['reasons_no_de_prep'].label = False + + self.helper.layout = Layout( + Fieldset( + None, + Div( + HTML('1'), + Div('total_teaching_days', css_class='col-md-4'), + Div('total_teaching_days_tillnow', css_class='col-md-4'), + css_class='row', + style="background: #E3F2FC;", + ), + css_class='bd-callout bd-callout-warning' + ), + + Fieldset( + None, + Div( + HTML('
'), + HTML(''), + Fieldset( + None, + Div( + HTML('1'), + HTML(_('Have you implemented distance education ?')), + Div('implemented_de_prep', css_class='col-md-3', id='implemented-de-prep'), + css_class='row', + ), + Div( + Div('reasons_no_de_prep', css_class='col-md-10', id='reasons-no-de-prep'), + css_class='row', + + ), + css_class='bd-callout bd-callout-warning', + ), + Fieldset( + None, + Div( + HTML('2'), + Div('steps_de_prep', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('3'), + Div('challenges_de_prep', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + + Fieldset( + None, + Div( + HTML('4'), + Div('evaluate_steps_de_prep', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + ), + style="background: #F8FAFC;", + ), + + Fieldset( + None, + Div( + HTML('
'), + HTML(''), + HTML(''), + HTML(''), + + Fieldset( + None, + Div( + HTML('1'), + HTML(_('Have you implemented distance education ?')), + Div('implemented_de', css_class='col-md-3'), + Div('reasons_no_de', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + + ), + Fieldset( + None, + Div( + HTML('2'), + Div('steps_de', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('3'), + Div('challenges_de', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + + Fieldset( + None, + Div( + HTML('4'), + Div('evaluate_steps_de', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + ), + style="background: #FDFFD8;", + ), + + Fieldset( + None, + Div( + HTML('
'), + HTML(''), + HTML(''), + HTML(''), + Fieldset( + None, + Div( + HTML('1'), + HTML(_('Have you implemented distance education ?')), + Div('implemented_de_2', css_class='col-md-3'), + Div('reasons_no_de_2', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + + ), + Fieldset( + None, + Div( + HTML('2'), + Div('steps_de_2', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('3'), + Div('challenges_de_2', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + + Fieldset( + None, + Div( + HTML('4'), + Div('evaluate_steps_de_2', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + ), + style="background: #F8FAFC;", + ), + + Fieldset( + None, + Div( + HTML('
'), + HTML(''), + HTML(''), + Fieldset( + None, + Div( + HTML('1'), + HTML(_('Have you implemented distance education ?')), + Div('implemented_de_3', css_class='col-md-3'), + Div('reasons_no_de_3', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + + ), + Fieldset( + None, + Div( + HTML('2'), + Div('steps_de_3', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('3'), + Div('challenges_de_3', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + + Fieldset( + None, + Div( + HTML('4'), + Div('evaluate_steps_de_3', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + style="background: #FDFFD8;", + ), + ), + + Fieldset( + None, + Div( + HTML('
'), + HTML(''), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('1'), + HTML(_('Have you implemented distance education ?')), + Div('implemented_de_9', css_class='col-md-3'), + Div('reasons_no_de_9', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + + ), + Fieldset( + None, + Div( + HTML('2'), + Div('steps_de_9', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + Fieldset( + None, + Div( + HTML('3'), + Div('challenges_de_9', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + + Fieldset( + None, + Div( + HTML('4'), + Div('evaluate_steps_de_9', css_class='col-md-10'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + style="background: #F8FAFC;", + ), + Fieldset( + None, + Div( + HTML('2'), + Div('other_notes_de', css_class='col-md-10'), + css_class='row', + style="background: #E3F2FC;", + ), + ), + FormActions( + Submit('save', _('Save')), + ), + ) + + def save(self, instance=None, request=None): + instance = super(EvaluationForm, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('total_teaching_days', 'total_teaching_days_tillnow', 'implemented_de', 'reasons_no_de', 'challenges_de', 'steps_de', + 'evaluate_steps_de', 'other_notes_de', + 'implemented_de_2', 'reasons_no_de_2', 'challenges_de_2', 'steps_de_2', 'evaluate_steps_de_2', + 'implemented_de_3', 'reasons_no_de_3', 'challenges_de_3', 'steps_de_3', 'evaluate_steps_de_3', + 'implemented_de_9', 'reasons_no_de_9', 'challenges_de_9', 'steps_de_9', 'evaluate_steps_de_9', + 'implemented_de_prep', 'reasons_no_de_prep', 'challenges_de_prep', 'steps_de_prep', 'evaluate_steps_de_prep', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['c2_eng_completed'].label = False + self.fields['c2_eng_completed_de'].label = False + self.fields['c2_eng_remaining_de'].label = False + self.fields['c2_fr_completed'].label = False + self.fields['c2_fr_completed_de'].label = False + self.fields['c2_fr_remaining_de'].label = False + self.fields['c2_math_completed'].label = False + self.fields['c2_math_completed_de'].label = False + self.fields['c2_math_remaining_de'].label = False + self.fields['c2_sc_completed'].label = False + self.fields['c2_sc_completed_de'].label = False + self.fields['c2_sc_remaining_de'].label = False + self.fields['c2_ara_completed'].label = False + self.fields['c2_ara_completed_de'].label = False + self.fields['c2_ara_remaining_de'].label = False + self.fields['c2_civic_completed'].label = False + self.fields['c2_civic_completed_de'].label = False + self.fields['c2_civic_remaining_de'].label = False + self.fields['c2_geo_completed'].label = False + self.fields['c2_geo_completed_de'].label = False + self.fields['c2_geo_remaining_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade 2') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('c2_ara_completed', css_class='col-md-10'), + HTML(''), + Div('c2_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('c2_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('c2_eng_completed', css_class='col-md-10'), + HTML(''), + Div('c2_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('c2_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('c2_fr_completed', css_class='col-md-10'), + HTML(''), + Div('c2_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('c2_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('c2_math_completed', css_class='col-md-10'), + HTML(''), + Div('c2_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('c2_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('c2_sc_completed', css_class='col-md-10'), + HTML(''), + Div('c2_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('c2_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('c2_civic_completed', css_class='col-md-10'), + HTML(''), + Div('c2_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('c2_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('c2_geo_completed', css_class='col-md-10'), + HTML(''), + Div('c2_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('c2_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('c2_eng_completed', 'c2_eng_completed_de', 'c2_eng_remaining_de', + 'c2_fr_completed', 'c2_fr_completed_de', 'c2_fr_remaining_de', + 'c2_math_completed', 'c2_math_completed_de', 'c2_math_remaining_de', + 'c2_sc_completed', 'c2_sc_completed_de', 'c2_sc_remaining_de', + 'c2_ara_completed', 'c2_ara_completed_de', 'c2_ara_remaining_de', + 'c2_civic_completed', 'c2_civic_completed_de', 'c2_civic_remaining_de', + 'c2_geo_completed', 'c2_geo_completed_de', 'c2_geo_remaining_de', + 'owner', 'school', 'education_year','total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form_c1(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form_c1, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['c1_eng_completed'].label = False + self.fields['c1_eng_completed_de'].label = False + self.fields['c1_eng_remaining_de'].label = False + self.fields['c1_fr_completed'].label = False + self.fields['c1_fr_completed_de'].label = False + self.fields['c1_fr_remaining_de'].label = False + self.fields['c1_math_completed'].label = False + self.fields['c1_math_completed_de'].label = False + self.fields['c1_math_remaining_de'].label = False + self.fields['c1_sc_completed'].label = False + self.fields['c1_sc_completed_de'].label = False + self.fields['c1_sc_remaining_de'].label = False + self.fields['c1_ara_completed'].label = False + self.fields['c1_ara_completed_de'].label = False + self.fields['c1_ara_remaining_de'].label = False + self.fields['c1_civic_completed'].label = False + self.fields['c1_civic_completed_de'].label = False + self.fields['c1_civic_remaining_de'].label = False + self.fields['c1_geo_completed'].label = False + self.fields['c1_geo_completed_de'].label = False + self.fields['c1_geo_remaining_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade 1') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('c1_ara_completed', css_class='col-md-10'), + HTML(''), + Div('c1_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('c1_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('c1_eng_completed', css_class='col-md-10'), + HTML(''), + Div('c1_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('c1_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('c1_fr_completed', css_class='col-md-10'), + HTML(''), + Div('c1_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('c1_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('c1_math_completed', css_class='col-md-10'), + HTML(''), + Div('c1_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('c1_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('c1_sc_completed', css_class='col-md-10'), + HTML(''), + Div('c1_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('c1_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('c1_civic_completed', css_class='col-md-10'), + HTML(''), + Div('c1_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('c1_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('c1_geo_completed', css_class='col-md-10'), + HTML(''), + Div('c1_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('c1_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form_c1, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('c1_eng_completed', 'c1_eng_completed_de', 'c1_eng_remaining_de', + 'c1_fr_completed', 'c1_fr_completed_de', 'c1_fr_remaining_de', + 'c1_math_completed', 'c1_math_completed_de', 'c1_math_remaining_de', + 'c1_sc_completed', 'c1_sc_completed_de', 'c1_sc_remaining_de', + 'c1_ara_completed', 'c1_ara_completed_de', 'c1_ara_remaining_de', + 'c1_civic_completed', 'c1_civic_completed_de', 'c1_civic_remaining_de', + 'c1_geo_completed', 'c1_geo_completed_de', 'c1_geo_remaining_de', + 'owner', 'school', 'education_year','total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form_c3(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form_c3, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['c3_eng_completed'].label = False + self.fields['c3_eng_completed_de'].label = False + self.fields['c3_eng_remaining_de'].label = False + self.fields['c3_fr_completed'].label = False + self.fields['c3_fr_completed_de'].label = False + self.fields['c3_fr_remaining_de'].label = False + self.fields['c3_math_completed'].label = False + self.fields['c3_math_completed_de'].label = False + self.fields['c3_math_remaining_de'].label = False + self.fields['c3_sc_completed'].label = False + self.fields['c3_sc_completed_de'].label = False + self.fields['c3_sc_remaining_de'].label = False + self.fields['c3_ara_completed'].label = False + self.fields['c3_ara_completed_de'].label = False + self.fields['c3_ara_remaining_de'].label = False + self.fields['c3_civic_completed'].label = False + self.fields['c3_civic_completed_de'].label = False + self.fields['c3_civic_remaining_de'].label = False + self.fields['c3_geo_completed'].label = False + self.fields['c3_geo_completed_de'].label = False + self.fields['c3_geo_remaining_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade 3') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('c3_ara_completed', css_class='col-md-10'), + HTML(''), + Div('c3_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('c3_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('c3_eng_completed', css_class='col-md-10'), + HTML(''), + Div('c3_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('c3_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('c3_fr_completed', css_class='col-md-10'), + HTML(''), + Div('c3_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('c3_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('c3_math_completed', css_class='col-md-10'), + HTML(''), + Div('c3_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('c3_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('c3_sc_completed', css_class='col-md-10'), + HTML(''), + Div('c3_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('c3_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('c3_civic_completed', css_class='col-md-10'), + HTML(''), + Div('c3_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('c3_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('c3_geo_completed', css_class='col-md-10'), + HTML(''), + Div('c3_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('c3_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form_c3, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('c3_eng_completed', 'c3_eng_completed_de', 'c3_eng_remaining_de', + 'c3_fr_completed', 'c3_fr_completed_de', 'c3_fr_remaining_de', + 'c3_math_completed', 'c3_math_completed_de', 'c3_math_remaining_de', + 'c3_sc_completed', 'c3_sc_completed_de', 'c3_sc_remaining_de', + 'c3_ara_completed', 'c3_ara_completed_de', 'c3_ara_remaining_de', + 'c3_civic_completed', 'c3_civic_completed_de', 'c3_civic_remaining_de', + 'c3_geo_completed', 'c3_geo_completed_de', 'c3_geo_remaining_de', + 'owner', 'school', 'education_year','total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form_c4(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form_c4, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['c4_eng_completed'].label = False + self.fields['c4_eng_completed_de'].label = False + self.fields['c4_eng_remaining_de'].label = False + self.fields['c4_fr_completed'].label = False + self.fields['c4_fr_completed_de'].label = False + self.fields['c4_fr_remaining_de'].label = False + self.fields['c4_math_completed'].label = False + self.fields['c4_math_completed_de'].label = False + self.fields['c4_math_remaining_de'].label = False + self.fields['c4_sc_completed'].label = False + self.fields['c4_sc_completed_de'].label = False + self.fields['c4_sc_remaining_de'].label = False + self.fields['c4_ara_completed'].label = False + self.fields['c4_ara_completed_de'].label = False + self.fields['c4_ara_remaining_de'].label = False + self.fields['c4_civic_completed'].label = False + self.fields['c4_civic_completed_de'].label = False + self.fields['c4_civic_remaining_de'].label = False + self.fields['c4_geo_completed'].label = False + self.fields['c4_geo_completed_de'].label = False + self.fields['c4_geo_remaining_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade 4') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('c4_ara_completed', css_class='col-md-10'), + HTML(''), + Div('c4_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('c4_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('c4_eng_completed', css_class='col-md-10'), + HTML(''), + Div('c4_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('c4_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('c4_fr_completed', css_class='col-md-10'), + HTML(''), + Div('c4_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('c4_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('c4_math_completed', css_class='col-md-10'), + HTML(''), + Div('c4_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('c4_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('c4_sc_completed', css_class='col-md-10'), + HTML(''), + Div('c4_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('c4_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('c4_civic_completed', css_class='col-md-10'), + HTML(''), + Div('c4_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('c4_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('c4_geo_completed', css_class='col-md-10'), + HTML(''), + Div('c4_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('c4_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form_c4, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('c4_eng_completed', 'c4_eng_completed_de', 'c4_eng_remaining_de', + 'c4_fr_completed', 'c4_fr_completed_de', 'c4_fr_remaining_de', + 'c4_math_completed', 'c4_math_completed_de', 'c4_math_remaining_de', + 'c4_sc_completed', 'c4_sc_completed_de', 'c4_sc_remaining_de', + 'c4_ara_completed', 'c4_ara_completed_de', 'c4_ara_remaining_de', + 'c4_civic_completed', 'c4_civic_completed_de', 'c4_civic_remaining_de', + 'c4_geo_completed', 'c4_geo_completed_de', 'c4_geo_remaining_de', + 'owner', 'school', 'education_year', 'total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form_c5(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form_c5, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['c5_eng_completed'].label = False + self.fields['c5_eng_completed_de'].label = False + self.fields['c5_eng_remaining_de'].label = False + self.fields['c5_fr_completed'].label = False + self.fields['c5_fr_completed_de'].label = False + self.fields['c5_fr_remaining_de'].label = False + self.fields['c5_math_completed'].label = False + self.fields['c5_math_completed_de'].label = False + self.fields['c5_math_remaining_de'].label = False + self.fields['c5_sc_completed'].label = False + self.fields['c5_sc_completed_de'].label = False + self.fields['c5_sc_remaining_de'].label = False + self.fields['c5_ara_completed'].label = False + self.fields['c5_ara_completed_de'].label = False + self.fields['c5_ara_remaining_de'].label = False + self.fields['c5_civic_completed'].label = False + self.fields['c5_civic_completed_de'].label = False + self.fields['c5_civic_remaining_de'].label = False + self.fields['c5_geo_completed'].label = False + self.fields['c5_geo_completed_de'].label = False + self.fields['c5_geo_remaining_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade 5') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('c5_ara_completed', css_class='col-md-10'), + HTML(''), + Div('c5_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('c5_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('c5_eng_completed', css_class='col-md-10'), + HTML(''), + Div('c5_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('c5_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('c5_fr_completed', css_class='col-md-10'), + HTML(''), + Div('c5_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('c5_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('c5_math_completed', css_class='col-md-10'), + HTML(''), + Div('c5_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('c5_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('c5_sc_completed', css_class='col-md-10'), + HTML(''), + Div('c5_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('c5_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('c5_civic_completed', css_class='col-md-10'), + HTML(''), + Div('c5_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('c5_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('c5_geo_completed', css_class='col-md-10'), + HTML(''), + Div('c5_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('c5_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form_c5, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('c5_eng_completed', 'c5_eng_completed_de', 'c5_eng_remaining_de', + 'c5_fr_completed', 'c5_fr_completed_de', 'c5_fr_remaining_de', + 'c5_math_completed', 'c5_math_completed_de', 'c5_math_remaining_de', + 'c5_sc_completed', 'c5_sc_completed_de', 'c5_sc_remaining_de', + 'c5_ara_completed', 'c5_ara_completed_de', 'c5_ara_remaining_de', + 'c5_civic_completed', 'c5_civic_completed_de', 'c5_civic_remaining_de', + 'c5_geo_completed', 'c5_geo_completed_de', 'c5_geo_remaining_de', + 'owner', 'school', 'education_year','total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form_c6(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form_c6, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['c6_eng_completed'].label = False + self.fields['c6_eng_completed_de'].label = False + self.fields['c6_eng_remaining_de'].label = False + self.fields['c6_fr_completed'].label = False + self.fields['c6_fr_completed_de'].label = False + self.fields['c6_fr_remaining_de'].label = False + self.fields['c6_math_completed'].label = False + self.fields['c6_math_completed_de'].label = False + self.fields['c6_math_remaining_de'].label = False + self.fields['c6_sc_completed'].label = False + self.fields['c6_sc_completed_de'].label = False + self.fields['c6_sc_remaining_de'].label = False + self.fields['c6_ara_completed'].label = False + self.fields['c6_ara_completed_de'].label = False + self.fields['c6_ara_remaining_de'].label = False + self.fields['c6_civic_completed'].label = False + self.fields['c6_civic_completed_de'].label = False + self.fields['c6_civic_remaining_de'].label = False + self.fields['c6_geo_completed'].label = False + self.fields['c6_geo_completed_de'].label = False + self.fields['c6_geo_remaining_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade 6') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('c6_ara_completed', css_class='col-md-10'), + HTML(''), + Div('c6_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('c6_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('c6_eng_completed', css_class='col-md-10'), + HTML(''), + Div('c6_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('c6_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('c6_fr_completed', css_class='col-md-10'), + HTML(''), + Div('c6_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('c6_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('c6_math_completed', css_class='col-md-10'), + HTML(''), + Div('c6_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('c6_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('c6_sc_completed', css_class='col-md-10'), + HTML(''), + Div('c6_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('c6_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('c6_civic_completed', css_class='col-md-10'), + HTML(''), + Div('c6_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('c6_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('c6_geo_completed', css_class='col-md-10'), + HTML(''), + Div('c6_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('c6_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form_c6, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('c6_eng_completed', 'c6_eng_completed_de', 'c6_eng_remaining_de', + 'c6_fr_completed', 'c6_fr_completed_de', 'c6_fr_remaining_de', + 'c6_math_completed', 'c6_math_completed_de', 'c6_math_remaining_de', + 'c6_sc_completed', 'c6_sc_completed_de', 'c6_sc_remaining_de', + 'c6_ara_completed', 'c6_ara_completed_de', 'c6_ara_remaining_de', + 'c6_civic_completed', 'c6_civic_completed_de', 'c6_civic_remaining_de', + 'c6_geo_completed', 'c6_geo_completed_de', 'c6_geo_remaining_de', + 'owner', 'school', 'education_year','total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form_c7(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form_c7, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['c7_eng_completed'].label = False + self.fields['c7_eng_completed_de'].label = False + self.fields['c7_eng_remaining_de'].label = False + self.fields['c7_fr_completed'].label = False + self.fields['c7_fr_completed_de'].label = False + self.fields['c7_fr_remaining_de'].label = False + self.fields['c7_math_completed'].label = False + self.fields['c7_math_completed_de'].label = False + self.fields['c7_math_remaining_de'].label = False + self.fields['c7_sc_completed'].label = False + self.fields['c7_sc_completed_de'].label = False + self.fields['c7_sc_remaining_de'].label = False + self.fields['c7_ara_completed'].label = False + self.fields['c7_ara_completed_de'].label = False + self.fields['c7_ara_remaining_de'].label = False + self.fields['c7_civic_completed'].label = False + self.fields['c7_civic_completed_de'].label = False + self.fields['c7_civic_remaining_de'].label = False + self.fields['c7_geo_completed'].label = False + self.fields['c7_geo_completed_de'].label = False + self.fields['c7_geo_remaining_de'].label = False + + self.fields['c7_his_completed'].label = False + self.fields['c7_his_completed_de'].label = False + self.fields['c7_his_remaining_de'].label = False + + self.fields['c7_che_completed'].label = False + self.fields['c7_che_completed_de'].label = False + self.fields['c7_che_remaining_de'].label = False + + self.fields['c7_phy_completed'].label = False + self.fields['c7_phy_completed_de'].label = False + self.fields['c7_phy_remaining_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade 7') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('c7_ara_completed', css_class='col-md-10'), + HTML(''), + Div('c7_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('c7_eng_completed', css_class='col-md-10'), + HTML(''), + Div('c7_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('c7_fr_completed', css_class='col-md-10'), + HTML(''), + Div('c7_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('c7_math_completed', css_class='col-md-10'), + HTML(''), + Div('c7_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('c7_sc_completed', css_class='col-md-10'), + HTML(''), + Div('c7_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('c7_civic_completed', css_class='col-md-10'), + HTML(''), + Div('c7_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('c7_geo_completed', css_class='col-md-10'), + HTML(''), + Div('c7_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Physics') + ''), + Div('c7_phy_completed', css_class='col-md-10'), + HTML(''), + Div('c7_phy_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_phy_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Chemistry') + ''), + Div('c7_che_completed', css_class='col-md-10'), + HTML(''), + Div('c7_che_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_che_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'History') + ''), + Div('c7_his_completed', css_class='col-md-10'), + HTML(''), + Div('c7_his_completed_de', css_class='col-md-10'), + HTML(''), + Div('c7_his_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form_c7, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('c7_eng_completed', 'c7_eng_completed_de', 'c7_eng_remaining_de', + 'c7_fr_completed', 'c7_fr_completed_de', 'c7_fr_remaining_de', + 'c7_math_completed', 'c7_math_completed_de', 'c7_math_remaining_de', + 'c7_sc_completed', 'c7_sc_completed_de', 'c7_sc_remaining_de', + 'c7_ara_completed', 'c7_ara_completed_de', 'c7_ara_remaining_de', + 'c7_civic_completed', 'c7_civic_completed_de', 'c7_civic_remaining_de', + 'c7_geo_completed', 'c7_geo_completed_de', 'c7_geo_remaining_de', + 'c7_his_completed', 'c7_his_completed_de', 'c7_his_remaining_de', + 'c7_che_completed', 'c7_che_completed_de', 'c7_che_remaining_de', + 'c7_phy_completed', 'c7_phy_completed_de', 'c7_phy_remaining_de', + 'owner', 'school', 'education_year','total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form_c8(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form_c8, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['c8_eng_completed'].label = False + self.fields['c8_eng_completed_de'].label = False + self.fields['c8_eng_remaining_de'].label = False + self.fields['c8_fr_completed'].label = False + self.fields['c8_fr_completed_de'].label = False + self.fields['c8_fr_remaining_de'].label = False + self.fields['c8_math_completed'].label = False + self.fields['c8_math_completed_de'].label = False + self.fields['c8_math_remaining_de'].label = False + self.fields['c8_sc_completed'].label = False + self.fields['c8_sc_completed_de'].label = False + self.fields['c8_sc_remaining_de'].label = False + self.fields['c8_ara_completed'].label = False + self.fields['c8_ara_completed_de'].label = False + self.fields['c8_ara_remaining_de'].label = False + self.fields['c8_civic_completed'].label = False + self.fields['c8_civic_completed_de'].label = False + self.fields['c8_civic_remaining_de'].label = False + self.fields['c8_geo_completed'].label = False + self.fields['c8_geo_completed_de'].label = False + self.fields['c8_geo_remaining_de'].label = False + self.fields['c8_his_completed'].label = False + self.fields['c8_his_completed_de'].label = False + self.fields['c8_his_remaining_de'].label = False + + self.fields['c8_che_completed'].label = False + self.fields['c8_che_completed_de'].label = False + self.fields['c8_che_remaining_de'].label = False + + self.fields['c8_phy_completed'].label = False + self.fields['c8_phy_completed_de'].label = False + self.fields['c8_phy_remaining_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade 8') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('c8_ara_completed', css_class='col-md-10'), + HTML(''), + Div('c8_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('c8_eng_completed', css_class='col-md-10'), + HTML(''), + Div('c8_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('c8_fr_completed', css_class='col-md-10'), + HTML(''), + Div('c8_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('c8_math_completed', css_class='col-md-10'), + HTML(''), + Div('c8_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('c8_sc_completed', css_class='col-md-10'), + HTML(''), + Div('c8_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('c8_civic_completed', css_class='col-md-10'), + HTML(''), + Div('c8_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('c8_geo_completed', css_class='col-md-10'), + HTML(''), + Div('c8_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Physics') + ''), + Div('c8_phy_completed', css_class='col-md-10'), + HTML(''), + Div('c8_phy_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_phy_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Chemistry') + ''), + Div('c8_che_completed', css_class='col-md-10'), + HTML(''), + Div('c8_che_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_che_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'History') + ''), + Div('c8_his_completed', css_class='col-md-10'), + HTML(''), + Div('c8_his_completed_de', css_class='col-md-10'), + HTML(''), + Div('c8_his_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form_c8, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('c8_eng_completed', 'c8_eng_completed_de', 'c8_eng_remaining_de', + 'c8_fr_completed', 'c8_fr_completed_de', 'c8_fr_remaining_de', + 'c8_math_completed', 'c8_math_completed_de', 'c8_math_remaining_de', + 'c8_sc_completed', 'c8_sc_completed_de', 'c8_sc_remaining_de', + 'c8_ara_completed', 'c8_ara_completed_de', 'c8_ara_remaining_de', + 'c8_civic_completed', 'c8_civic_completed_de', 'c8_civic_remaining_de', + 'c8_geo_completed', 'c8_geo_completed_de', 'c8_geo_remaining_de', + 'c8_his_completed', 'c8_his_completed_de', 'c8_his_remaining_de', + 'c8_che_completed', 'c8_che_completed_de', 'c8_che_remaining_de', + 'c8_phy_completed', 'c8_phy_completed_de', 'c8_phy_remaining_de', + 'owner', 'school', 'education_year','total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form_c9(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form_c9, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['c9_eng_completed'].label = False + self.fields['c9_eng_completed_de'].label = False + self.fields['c9_eng_remaining_de'].label = False + self.fields['c9_fr_completed'].label = False + self.fields['c9_fr_completed_de'].label = False + self.fields['c9_fr_remaining_de'].label = False + self.fields['c9_math_completed'].label = False + self.fields['c9_math_completed_de'].label = False + self.fields['c9_math_remaining_de'].label = False + self.fields['c9_sc_completed'].label = False + self.fields['c9_sc_completed_de'].label = False + self.fields['c9_sc_remaining_de'].label = False + self.fields['c9_ara_completed'].label = False + self.fields['c9_ara_completed_de'].label = False + self.fields['c9_ara_remaining_de'].label = False + self.fields['c9_civic_completed'].label = False + self.fields['c9_civic_completed_de'].label = False + self.fields['c9_civic_remaining_de'].label = False + self.fields['c9_geo_completed'].label = False + self.fields['c9_geo_completed_de'].label = False + self.fields['c9_geo_remaining_de'].label = False + self.fields['c9_his_completed'].label = False + self.fields['c9_his_completed_de'].label = False + self.fields['c9_his_remaining_de'].label = False + + self.fields['c9_che_completed'].label = False + self.fields['c9_che_completed_de'].label = False + self.fields['c9_che_remaining_de'].label = False + + self.fields['c9_phy_completed'].label = False + self.fields['c9_phy_completed_de'].label = False + self.fields['c9_phy_remaining_de'].label = False + self.fields['c9_total_std'].label = False + self.fields['c9_total_std_de'].label = False + self.fields['c9_total_teachers'].label = False + self.fields['c9_total_teachers_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade 9') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('c9_ara_completed', css_class='col-md-10'), + HTML(''), + Div('c9_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('c9_eng_completed', css_class='col-md-10'), + HTML(''), + Div('c9_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('c9_fr_completed', css_class='col-md-10'), + HTML(''), + Div('c9_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('c9_math_completed', css_class='col-md-10'), + HTML(''), + Div('c9_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('c9_sc_completed', css_class='col-md-10'), + HTML(''), + Div('c9_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('c9_civic_completed', css_class='col-md-10'), + HTML(''), + Div('c9_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('c9_geo_completed', css_class='col-md-10'), + HTML(''), + Div('c9_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Physics') + ''), + Div('c9_phy_completed', css_class='col-md-10'), + HTML(''), + Div('c9_phy_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_phy_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Chemistry') + ''), + Div('c9_che_completed', css_class='col-md-10'), + HTML(''), + Div('c9_che_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_che_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'History') + ''), + Div('c9_his_completed', css_class='col-md-10'), + HTML(''), + Div('c9_his_completed_de', css_class='col-md-10'), + HTML(''), + Div('c9_his_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + None, + ), + Div( + HTML(''), + Div('c9_total_teachers', css_class='col-md-5'), + css_class='row', + ), + Div( + HTML(''), + Div('c9_total_teachers_de', css_class='col-md-5'), + css_class='row', + ), + Div( + HTML(''), + Div('c9_total_std', css_class='col-md-4'), + css_class='row', + ), + Div( + HTML(''), + Div('c9_total_std_de', css_class='col-md-4'), + css_class='row', + ), + + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form_c9, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('c9_eng_completed', 'c9_eng_completed_de', 'c9_eng_remaining_de', + 'c9_fr_completed', 'c9_fr_completed_de', 'c9_fr_remaining_de', + 'c9_math_completed', 'c9_math_completed_de', 'c9_math_remaining_de', + 'c9_sc_completed', 'c9_sc_completed_de', 'c9_sc_remaining_de', + 'c9_ara_completed', 'c9_ara_completed_de', 'c9_ara_remaining_de', + 'c9_civic_completed', 'c9_civic_completed_de', 'c9_civic_remaining_de', + 'c9_geo_completed', 'c9_geo_completed_de', 'c9_geo_remaining_de', + 'c9_his_completed', 'c9_his_completed_de', 'c9_his_remaining_de', + 'c9_che_completed', 'c9_che_completed_de', 'c9_che_remaining_de', + 'c9_phy_completed', 'c9_phy_completed_de', 'c9_phy_remaining_de', + 'c9_total_std', 'c9_total_std_de', + 'c9_total_teachers', 'c9_total_teachers_de', + 'owner', 'school', 'education_year','total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () + + +class Classroom_Form_cprep(forms.ModelForm): + class Meta: + model = Evaluation + exclude = () + + def __init__(self, *args, **kwargs): + super(Classroom_Form_cprep, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_tag = True + self.helper.form_class = 'form-horizontal' + self.helper.label_class = 'col-md-3 create-label' + self.helper.field_class = 'col-md-9' + self.fields['cprep_eng_completed'].label = False + self.fields['cprep_eng_completed_de'].label = False + self.fields['cprep_eng_remaining_de'].label = False + self.fields['cprep_fr_completed'].label = False + self.fields['cprep_fr_completed_de'].label = False + self.fields['cprep_fr_remaining_de'].label = False + self.fields['cprep_math_completed'].label = False + self.fields['cprep_math_completed_de'].label = False + self.fields['cprep_math_remaining_de'].label = False + self.fields['cprep_sc_completed'].label = False + self.fields['cprep_sc_completed_de'].label = False + self.fields['cprep_sc_remaining_de'].label = False + self.fields['cprep_ara_completed'].label = False + self.fields['cprep_ara_completed_de'].label = False + self.fields['cprep_ara_remaining_de'].label = False + self.fields['cprep_civic_completed'].label = False + self.fields['cprep_civic_completed_de'].label = False + self.fields['cprep_civic_remaining_de'].label = False + self.fields['cprep_geo_completed'].label = False + self.fields['cprep_geo_completed_de'].label = False + self.fields['cprep_geo_remaining_de'].label = False + self.helper.layout = Layout( + Fieldset( + None, + Div( + Div('owner', css_class='col-md-10', hidden="true"), + Div('school', css_class='col-md-10', hidden="true"), + Div('education_year', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days', css_class='col-md-10', hidden="true"), + Div('implemented_de', css_class='col-md-10', hidden="true"), + Div('reasons_no_de', css_class='col-md-10', hidden="true"), + Div('challenges_de', css_class='col-md-10', hidden="true"), + Div('steps_de', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de', css_class='col-md-10', hidden="true"), + + Div('total_teaching_days_tillnow', css_class='col-md-10', hidden="true"), + Div('implemented_de_2', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_2', css_class='col-md-10', hidden="true"), + Div('challenges_de_2', css_class='col-md-10', hidden="true"), + Div('steps_de_2', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_2', css_class='col-md-10', hidden="true"), + + Div('implemented_de_3', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_3', css_class='col-md-10', hidden="true"), + Div('challenges_de_3', css_class='col-md-10', hidden="true"), + Div('steps_de_3', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_3', css_class='col-md-10', hidden="true"), + + Div('implemented_de_9', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_9', css_class='col-md-10', hidden="true"), + Div('challenges_de_9', css_class='col-md-10', hidden="true"), + Div('steps_de_9', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_9', css_class='col-md-10', hidden="true"), + + Div('implemented_de_prep', css_class='col-md-10', hidden="true"), + Div('reasons_no_de_prep', css_class='col-md-10', hidden="true"), + Div('challenges_de_prep', css_class='col-md-10', hidden="true"), + Div('steps_de_prep', css_class='col-md-10 hidden', hidden="true"), + Div('evaluate_steps_de_prep', css_class='col-md-10', hidden="true"), + Div('other_notes_de', css_class='col-md-10', hidden="true"), + + css_class='row', + ), + ), + Fieldset( + None, + Div( + HTML('

' + _('Grade Prep-Ece') + '

') + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Arabic') + ''), + Div('cprep_ara_completed', css_class='col-md-10'), + HTML(''), + Div('cprep_ara_completed_de', css_class='col-md-10'), + HTML(''), + Div('cprep_ara_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'English') + ''), + Div('cprep_eng_completed', css_class='col-md-10'), + HTML(''), + Div('cprep_eng_completed_de', css_class='col-md-10'), + HTML(''), + Div('cprep_eng_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Frensh') + ''), + Div('cprep_fr_completed', css_class='col-md-10'), + HTML(''), + Div('cprep_fr_completed_de', css_class='col-md-10'), + HTML(''), + Div('cprep_fr_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Math') + ''), + Div('cprep_math_completed', css_class='col-md-10'), + HTML(''), + Div('cprep_math_completed_de', css_class='col-md-10'), + HTML(''), + Div('cprep_math_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Science') + ''), + Div('cprep_sc_completed', css_class='col-md-10'), + HTML(''), + Div('cprep_sc_completed_de', css_class='col-md-10'), + HTML(''), + Div('cprep_sc_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Civic Education') + ''), + Div('cprep_civic_completed', css_class='col-md-10'), + HTML(''), + Div('cprep_civic_completed_de', css_class='col-md-10'), + HTML(''), + Div('cprep_civic_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + Div( + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML(''), + HTML('
' + _( + 'Geography') + ''), + Div('cprep_geo_completed', css_class='col-md-10'), + HTML(''), + Div('cprep_geo_completed_de', css_class='col-md-10'), + HTML(''), + Div('cprep_geo_remaining_de', css_class='col-md-10'), + HTML('
'), + css_class='row', + ), + css_class='bd-callout bd-callout-warning' + ), + FormActions( + Submit('save', _('Save')), + ) + ) + + def save(self, instance=None, request=None): + instance = super(Classroom_Form_cprep, self).save() + messages.success(request, _('Your data has been sent successfully to the server')) + + class Meta: + model = Evaluation + fields = ('cprep_eng_completed', 'cprep_eng_completed_de', 'cprep_eng_remaining_de', + 'cprep_fr_completed', 'cprep_fr_completed_de', 'cprep_fr_remaining_de', + 'cprep_math_completed', 'cprep_math_completed_de', 'cprep_math_remaining_de', + 'cprep_sc_completed', 'cprep_sc_completed_de', 'cprep_sc_remaining_de', + 'cprep_ara_completed', 'cprep_ara_completed_de', 'cprep_ara_remaining_de', + 'cprep_civic_completed', 'cprep_civic_completed_de', 'cprep_civic_remaining_de', + 'cprep_geo_completed', 'cprep_geo_completed_de', 'cprep_geo_remaining_de', + 'owner', 'school', 'education_year','total_teaching_days', 'implemented_de', 'reasons_no_de', + 'challenges_de', 'steps_de', 'evaluate_steps_de', 'other_notes_de', + ) + initial_fields = fields + widgets = {} + + class Media: + js = () diff --git a/student_registration/schools/migrations/0036_auto_20190314_2029.py b/student_registration/schools/migrations/0036_auto_20190314_2029.py new file mode 100644 index 000000000..363a3e4d2 --- /dev/null +++ b/student_registration/schools/migrations/0036_auto_20190314_2029.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-14 18:29 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0035_auto_20180215_1432'), + ] + + operations = [ + migrations.CreateModel( + name='Coordinator', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200, unique=True)), + ], + options={ + 'ordering': ['name'], + 'verbose_name': 'Coordinator', + }, + ), + migrations.RemoveField( + model_name='school', + name='field_coordinator_name', + ), + migrations.AddField( + model_name='school', + name='coordinator', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.Coordinator', verbose_name='coordinator'), + ), + # migrations.DeleteModel( + # name='Coordinator', + # ), + ] diff --git a/student_registration/schools/migrations/0037_auto_20190328_1416.py b/student_registration/schools/migrations/0037_auto_20190328_1416.py new file mode 100644 index 000000000..b67f55721 --- /dev/null +++ b/student_registration/schools/migrations/0037_auto_20190328_1416.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-03-28 12:16 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0036_auto_20190314_2029'), + ] + + operations = [ + migrations.AlterField( + model_name='school', + name='coordinator', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.Coordinator', verbose_name='\u0627\u0633\u0645 \u0627\u0644\u0645\u0646\u0633\u0642 \u0627\u0644\u0645\u064a\u062f\u0627\u0646\u064a'), + ), + ] diff --git a/student_registration/schools/migrations/0038_auto_20190619_0156.py b/student_registration/schools/migrations/0038_auto_20190619_0156.py new file mode 100644 index 000000000..fbd2a67a3 --- /dev/null +++ b/student_registration/schools/migrations/0038_auto_20190619_0156.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-06-18 22:56 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0037_auto_20190328_1416'), + ] + + operations = [ + migrations.AddField( + model_name='clmround', + name='current_round_abln', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='clmround', + name='current_round_bln', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='clmround', + name='current_round_cbece', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='clmround', + name='end_date_abln', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='end_date_bln', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='end_date_cbece', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='start_date_abln', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='start_date_bln', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='start_date_cbece', + field=models.DateField(blank=True, null=True), + ), + ] diff --git a/student_registration/schools/migrations/0039_auto_20190619_1028.py b/student_registration/schools/migrations/0039_auto_20190619_1028.py new file mode 100644 index 000000000..d3ec90a4b --- /dev/null +++ b/student_registration/schools/migrations/0039_auto_20190619_1028.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-06-19 07:28 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0038_auto_20190619_0156'), + ] + + operations = [ + migrations.AddField( + model_name='clmround', + name='end_date_abln_edit', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='end_date_bln_edit', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='end_date_cbece_edit', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='start_date_abln_edit', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='start_date_bln_edit', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='clmround', + name='start_date_cbece_edit', + field=models.DateField(blank=True, null=True), + ), + ] diff --git a/student_registration/schools/migrations/0040_school_is_closed.py b/student_registration/schools/migrations/0040_school_is_closed.py new file mode 100644 index 000000000..d052e7b8c --- /dev/null +++ b/student_registration/schools/migrations/0040_school_is_closed.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-28 05:55 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0039_auto_20190619_1028'), + ] + + operations = [ + migrations.AddField( + model_name='school', + name='is_closed', + field=models.BooleanField(default=False, verbose_name='is closed'), + ), + ] diff --git a/student_registration/schools/migrations/0041_auto_20190929_1231.py b/student_registration/schools/migrations/0041_auto_20190929_1231.py new file mode 100644 index 000000000..7e170df35 --- /dev/null +++ b/student_registration/schools/migrations/0041_auto_20190929_1231.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-29 09:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0040_school_is_closed'), + ] + + operations = [ + migrations.AlterField( + model_name='school', + name='is_closed', + field=models.BooleanField(default=False, verbose_name='\u0645\u063a\u0644\u0642\u0629'), + ), + ] diff --git a/student_registration/schools/migrations/0042_setup.py b/student_registration/schools/migrations/0042_setup.py new file mode 100644 index 000000000..a9ceb719a --- /dev/null +++ b/student_registration/schools/migrations/0042_setup.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-22 05:50 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0041_auto_20190929_1231'), + ] + + operations = [ + migrations.CreateModel( + name='Setup', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('staff_seq', models.IntegerField(blank=True, null=True)), + ], + ), + ] diff --git a/student_registration/schools/migrations/0043_class_section.py b/student_registration/schools/migrations/0043_class_section.py new file mode 100644 index 000000000..c86920441 --- /dev/null +++ b/student_registration/schools/migrations/0043_class_section.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-28 23:57 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0042_setup'), + ] + + operations = [ + migrations.CreateModel( + name='class_section', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('closed_date', models.DateField(blank=True, null=True, verbose_name='Closed Date')), + ('is_closed', models.BooleanField(default=False, verbose_name='\u0645\u063a\u0644\u0642\u0629')), + ('school_type', models.CharField(blank=True, max_length=15, null=True, verbose_name='school type')), + ('classroom', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.ClassRoom', verbose_name='class')), + ('education_year', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationYear', verbose_name='\u0627\u0644\u0633\u0646\u0629 \u0627\u0644\u062f\u0631\u0627\u0633\u064a\u0629')), + ('school', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.School', verbose_name='school')), + ('section', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.Section', verbose_name='section')), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/student_registration/schools/migrations/0044_auto_20200105_2322.py b/student_registration/schools/migrations/0044_auto_20200105_2322.py new file mode 100644 index 000000000..c4270364c --- /dev/null +++ b/student_registration/schools/migrations/0044_auto_20200105_2322.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-05 21:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0043_class_section'), + ] + + operations = [ + migrations.AddField( + model_name='alpassignmentmatrix', + name='matrix_type', + field=models.CharField(blank=True, choices=[('O', 'Old'), ('N', 'New')], max_length=1, null=True), + ), + migrations.AddField( + model_name='educationlevel', + name='coefficient_score', + field=models.FloatField(blank=True, null=True), + ), + migrations.AddField( + model_name='educationlevel', + name='with_arabic', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='educationlevel', + name='with_language', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='educationlevel', + name='with_math', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='educationlevel', + name='with_science', + field=models.BooleanField(default=False), + ), + ] diff --git a/student_registration/schools/migrations/0045_educationlevel_new_calculation.py b/student_registration/schools/migrations/0045_educationlevel_new_calculation.py new file mode 100644 index 000000000..d6188ae32 --- /dev/null +++ b/student_registration/schools/migrations/0045_educationlevel_new_calculation.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-05 22:50 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0044_auto_20200105_2322'), + ] + + operations = [ + migrations.AddField( + model_name='educationlevel', + name='new_calculation', + field=models.BooleanField(default=True), + ), + ] diff --git a/student_registration/schools/migrations/0046_auto_20200106_0051.py b/student_registration/schools/migrations/0046_auto_20200106_0051.py new file mode 100644 index 000000000..1e1286496 --- /dev/null +++ b/student_registration/schools/migrations/0046_auto_20200106_0051.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-05 22:51 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0045_educationlevel_new_calculation'), + ] + + operations = [ + migrations.AlterField( + model_name='educationlevel', + name='new_calculation', + field=models.BooleanField(default=False), + ), + ] diff --git a/student_registration/schools/migrations/0047_auto_20200114_0918.py b/student_registration/schools/migrations/0047_auto_20200114_0918.py new file mode 100644 index 000000000..34ee7729d --- /dev/null +++ b/student_registration/schools/migrations/0047_auto_20200114_0918.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-14 07:18 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0017_auto_20200114_0918'), + ('schools', '0046_auto_20200106_0051'), + ] + + operations = [ + migrations.AddField( + model_name='school', + name='bank_Base1', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffs.Bank', verbose_name='\u0627\u0644\u0628\u0646\u0643'), + ), + migrations.AddField( + model_name='school', + name='bank_Base2', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffs.Bank', verbose_name='\u0627\u0644\u0628\u0646\u0643'), + ), + migrations.AddField( + model_name='school', + name='branch_base1', + field=models.CharField(blank=True, max_length=60, null=True, verbose_name='\u0627\u0644\u0641\u0631\u0639'), + ), + migrations.AddField( + model_name='school', + name='branch_base2', + field=models.CharField(blank=True, max_length=60, null=True, verbose_name='\u0627\u0644\u0641\u0631\u0639'), + ), + migrations.AddField( + model_name='school', + name='iban_base1', + field=models.CharField(blank=True, max_length=100, null=True, verbose_name='IBAN LL'), + ), + migrations.AddField( + model_name='school', + name='iban_base2', + field=models.CharField(blank=True, max_length=100, null=True, verbose_name='IBAN $'), + ), + ] diff --git a/student_registration/schools/migrations/0048_auto_20200117_1032.py b/student_registration/schools/migrations/0048_auto_20200117_1032.py new file mode 100644 index 000000000..13903914e --- /dev/null +++ b/student_registration/schools/migrations/0048_auto_20200117_1032.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-17 08:32 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0047_auto_20200114_0918'), + ] + + operations = [ + migrations.AlterField( + model_name='alpassignmentmatrix', + name='matrix_type', + field=models.CharField(blank=True, choices=[('O', 'Old'), ('N', '\u0623\u0636\u0641')], max_length=1, null=True), + ), + migrations.AlterField( + model_name='class_section', + name='classroom', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.ClassRoom', verbose_name='\u0627\u0644\u0635\u0641'), + ), + migrations.AlterField( + model_name='class_section', + name='closed_date', + field=models.DateField(blank=True, null=True, verbose_name='\u0633\u0628\u0628 \u0627\u0644\u0627\u0642\u0641\u0627\u0644 '), + ), + migrations.AlterField( + model_name='class_section', + name='school', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.School', verbose_name='\u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='class_section', + name='school_type', + field=models.CharField(blank=True, max_length=15, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AlterField( + model_name='class_section', + name='section', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.Section', verbose_name='\u0627\u0644\u0634\u0639\u0628\u0629'), + ), + ] diff --git a/student_registration/schools/migrations/0049_auto_20200319_1358.py b/student_registration/schools/migrations/0049_auto_20200319_1358.py new file mode 100644 index 000000000..3b67ea8ca --- /dev/null +++ b/student_registration/schools/migrations/0049_auto_20200319_1358.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-19 11:58 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('schools', '0048_auto_20200117_1032'), + ] + + operations = [ + migrations.CreateModel( + name='Evaluation', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('total_teaching_days', models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99), (100, 100), (101, 101), (102, 102), (103, 103), (104, 104), (105, 105), (106, 106), (107, 107), (108, 108), (109, 109), (110, 110), (111, 111), (112, 112), (113, 113), (114, 114), (115, 115), (116, 116), (117, 117), (118, 118), (119, 119), (120, 120), (121, 121), (122, 122), (123, 123), (124, 124), (125, 125), (126, 126), (127, 127), (128, 128), (129, 129), (130, 130), (131, 131), (132, 132), (133, 133), (134, 134), (135, 135), (136, 136), (137, 137), (138, 138), (139, 139), (140, 140), (141, 141), (142, 142), (143, 143), (144, 144), (145, 145), (146, 146), (147, 147), (148, 148), (149, 149), (150, 150), (151, 151), (152, 152), (153, 153), (154, 154), (155, 155), (156, 156), (157, 157), (158, 158), (159, 159), (160, 160), (161, 161), (162, 162), (163, 163), (164, 164), (165, 165), (166, 166), (167, 167), (168, 168), (169, 169), (170, 170), (171, 171), (172, 172), (173, 173), (174, 174), (175, 175), (176, 176), (177, 177), (178, 178), (179, 179), (180, 180), (181, 181), (182, 182), (183, 183), (184, 184), (185, 185), (186, 186), (187, 187), (188, 188), (189, 189), (190, 190), (191, 191), (192, 192), (193, 193), (194, 194), (195, 195), (196, 196), (197, 197), (198, 198), (199, 199), (200, 200), (201, 201), (202, 202), (203, 203), (204, 204), (205, 205), (206, 206), (207, 207), (208, 208), (209, 209), (210, 210), (211, 211), (212, 212), (213, 213), (214, 214), (215, 215), (216, 216), (217, 217), (218, 218), (219, 219), (220, 220), (221, 221), (222, 222), (223, 223), (224, 224), (225, 225), (226, 226), (227, 227), (228, 228), (229, 229), (230, 230), (231, 231), (232, 232), (233, 233), (234, 234), (235, 235), (236, 236), (237, 237), (238, 238), (239, 239), (240, 240), (241, 241), (242, 242), (243, 243), (244, 244), (245, 245), (246, 246), (247, 247), (248, 248), (249, 249), (250, 250), (251, 251), (252, 252), (253, 253), (254, 254), (255, 255), (256, 256), (257, 257), (258, 258), (259, 259), (260, 260), (261, 261), (262, 262), (263, 263), (264, 264), (265, 265), (266, 266), (267, 267), (268, 268), (269, 269), (270, 270), (271, 271), (272, 272), (273, 273), (274, 274), (275, 275), (276, 276), (277, 277), (278, 278), (279, 279), (280, 280), (281, 281), (282, 282), (283, 283), (284, 284), (285, 285), (286, 286), (287, 287), (288, 288), (289, 289), (290, 290), (291, 291), (292, 292), (293, 293), (294, 294), (295, 295), (296, 296), (297, 297), (298, 298), (299, 299), (300, 300), (301, 301), (302, 302), (303, 303), (304, 304), (305, 305), (306, 306), (307, 307), (308, 308), (309, 309), (310, 310), (311, 311), (312, 312), (313, 313), (314, 314), (315, 315), (316, 316), (317, 317), (318, 318), (319, 319), (320, 320), (321, 321), (322, 322), (323, 323), (324, 324), (325, 325), (326, 326), (327, 327), (328, 328), (329, 329), (330, 330), (331, 331), (332, 332), (333, 333), (334, 334), (335, 335), (336, 336), (337, 337), (338, 338), (339, 339), (340, 340), (341, 341), (342, 342), (343, 343), (344, 344), (345, 345), (346, 346), (347, 347), (348, 348), (349, 349), (350, 350), (351, 351), (352, 352), (353, 353), (354, 354), (355, 355), (356, 356), (357, 357), (358, 358), (359, 359), (360, 360), (361, 361), (362, 362), (363, 363), (364, 364)], default=0, null=True, verbose_name='Teaching days completed since the beginning of the school year')), + ('implemented_de', models.BooleanField(default=False, verbose_name='Have you implemented distance education ?')), + ('reasons_no_de', models.TextField(blank=True, null=True, verbose_name='Determine the reasons')), + ('challenges_de', models.TextField(blank=True, null=True, verbose_name='The challenges that you faced during distance education')), + ('steps_de', models.TextField(blank=True, null=True, verbose_name='The challenges that you faced during distance education')), + ('other_notes_de', models.TextField(blank=True, null=True, verbose_name='Other comments')), + ('education_year', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationYear', verbose_name='\u0627\u0644\u0633\u0646\u0629 \u0627\u0644\u062f\u0631\u0627\u0633\u064a\u0629')), + ('owner', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='\u0627\u0646\u0634\u0623 \u0645\u0646 \u0642\u0628\u0644')), + ('school', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.School', verbose_name='\u0627\u0644\u0645\u062f\u0631\u0633\u0629')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='EvaluationDt', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('completed', models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed')), + ('completed_de', models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education')), + ('remaining_de', models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education')), + ('classroom', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.ClassRoom', verbose_name='\u0627\u0644\u0635\u0641 \u0627\u0644\u062d\u0627\u0644\u064a')), + ('evaluation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schools.Evaluation', verbose_name='Evaluation')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Subject', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=45, unique=True)), + ], + options={ + 'ordering': ['id'], + 'verbose_name_plural': 'Subjects', + }, + ), + migrations.AddField( + model_name='evaluationdt', + name='subject', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.Subject', verbose_name='\u0627\u0644\u0645\u0648\u0627\u062f'), + ), + ] diff --git a/student_registration/schools/migrations/0050_auto_20200321_0535.py b/student_registration/schools/migrations/0050_auto_20200321_0535.py new file mode 100644 index 000000000..25f849bc4 --- /dev/null +++ b/student_registration/schools/migrations/0050_auto_20200321_0535.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-21 03:36 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0049_auto_20200319_1358'), + ] + + operations = [ + migrations.AddField( + model_name='evaluation', + name='c2_ar_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c2_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + ] diff --git a/student_registration/schools/migrations/0051_auto_20200321_0545.py b/student_registration/schools/migrations/0051_auto_20200321_0545.py new file mode 100644 index 000000000..8e9bc7530 --- /dev/null +++ b/student_registration/schools/migrations/0051_auto_20200321_0545.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-21 03:45 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0050_auto_20200321_0535'), + ] + + operations = [ + migrations.RenameField( + model_name='evaluation', + old_name='c2_ar_remaining_de', + new_name='c2_ara_remaining_de', + ), + ] diff --git a/student_registration/schools/migrations/0052_auto_20200321_0711.py b/student_registration/schools/migrations/0052_auto_20200321_0711.py new file mode 100644 index 000000000..8c0cd2640 --- /dev/null +++ b/student_registration/schools/migrations/0052_auto_20200321_0711.py @@ -0,0 +1,840 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-21 05:11 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0051_auto_20200321_0545'), + ] + + operations = [ + migrations.AddField( + model_name='evaluation', + name='c1_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c1_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c4_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c5_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c6_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_che_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_che_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_his_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_his_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_phy_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_phy_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c7_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_che_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_che_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_his_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_his_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_phy_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_phy_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='cprep_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education'), + ), + ] diff --git a/student_registration/schools/migrations/0053_auto_20200321_0945.py b/student_registration/schools/migrations/0053_auto_20200321_0945.py new file mode 100644 index 000000000..3b530e54a --- /dev/null +++ b/student_registration/schools/migrations/0053_auto_20200321_0945.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-21 07:45 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0052_auto_20200321_0711'), + ] + + operations = [ + migrations.AddField( + model_name='evaluation', + name='c9_challanges_difficulties_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='Challanges and difficulties'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_total_std', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='Total of students'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_total_std_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='Total of students they follow distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_used_method_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='The methods used'), + ), + ] diff --git a/student_registration/schools/migrations/0054_auto_20200321_1058.py b/student_registration/schools/migrations/0054_auto_20200321_1058.py new file mode 100644 index 000000000..593364598 --- /dev/null +++ b/student_registration/schools/migrations/0054_auto_20200321_1058.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-21 08:58 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0053_auto_20200321_0945'), + ] + + operations = [ + migrations.AlterField( + model_name='evaluation', + name='c9_challanges_difficulties_de', + field=models.TextField(blank=True, null=True, verbose_name='Challanges and difficulties'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_used_method_de', + field=models.TextField(blank=True, null=True, verbose_name='Methods that have contributed to the success of distance education'), + ), + ] diff --git a/student_registration/schools/migrations/0055_auto_20200322_1058.py b/student_registration/schools/migrations/0055_auto_20200322_1058.py new file mode 100644 index 000000000..d95e07c44 --- /dev/null +++ b/student_registration/schools/migrations/0055_auto_20200322_1058.py @@ -0,0 +1,1235 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-22 08:58 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0054_auto_20200321_1058'), + ] + + operations = [ + migrations.AddField( + model_name='evaluation', + name='c3_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c3_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_che_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_che_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_his_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_his_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_phy_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_phy_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AddField( + model_name='evaluation', + name='c8_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_total_teachers', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='Total of teachers'), + ), + migrations.AddField( + model_name='evaluation', + name='c9_total_teachers_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='Number of teachers who have committed to distance education'), + ), + migrations.AddField( + model_name='evaluation', + name='evaluate_steps_de', + field=models.TextField(blank=True, null=True, verbose_name='Evaluate the steps followed in distance education'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_che_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_che_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_his_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_his_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_phy_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_phy_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_che_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_che_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_his_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_his_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_phy_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_phy_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons remaining'), + ), + migrations.AlterField( + model_name='evaluation', + name='steps_de', + field=models.TextField(blank=True, null=True, verbose_name='What are the steps followed in distance education'), + ), + migrations.AlterField( + model_name='evaluationdt', + name='completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='The number of lessons completed till february'), + ), + migrations.AlterField( + model_name='evaluationdt', + name='completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + migrations.AlterField( + model_name='evaluationdt', + name='remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='Number of lessons accomplished through distance education in march'), + ), + ] diff --git a/student_registration/schools/migrations/0056_auto_20200322_1956.py b/student_registration/schools/migrations/0056_auto_20200322_1956.py new file mode 100644 index 000000000..5b735b0e5 --- /dev/null +++ b/student_registration/schools/migrations/0056_auto_20200322_1956.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-22 17:56 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0055_auto_20200322_1058'), + ] + + operations = [ + migrations.AddField( + model_name='evaluation', + name='c9_evaluation', + field=models.TextField(blank=True, null=True, verbose_name='Evaluation on the interventions '), + ), + migrations.AddField( + model_name='evaluation', + name='c9_interventions', + field=models.TextField(blank=True, null=True, verbose_name='Interventions taken in the cycle'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_challanges_difficulties_de', + field=models.TextField(blank=True, null=True, verbose_name='Challenges that faces the implementation'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_used_method_de', + field=models.TextField(blank=True, null=True, verbose_name='Methods that are used in distance education'), + ), + ] diff --git a/student_registration/schools/migrations/0057_auto_20200322_2359.py b/student_registration/schools/migrations/0057_auto_20200322_2359.py new file mode 100644 index 000000000..3c8c49c8d --- /dev/null +++ b/student_registration/schools/migrations/0057_auto_20200322_2359.py @@ -0,0 +1,1392 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-22 21:59 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0056_auto_20200322_1956'), + ] + + operations = [ + migrations.RemoveField( + model_name='evaluation', + name='c9_challanges_difficulties_de', + ), + migrations.RemoveField( + model_name='evaluation', + name='c9_evaluation', + ), + migrations.RemoveField( + model_name='evaluation', + name='c9_interventions', + ), + migrations.RemoveField( + model_name='evaluation', + name='c9_used_method_de', + ), + migrations.AddField( + model_name='evaluation', + name='challenges_de_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u062d\u062f\u064a\u0627\u062a \u0627\u0644\u062a\u064a \u0648\u0627\u062c\u0647\u062a\u0647\u0627 \u0623\u062b\u0646\u0627\u0621 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='challenges_de_3', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u062d\u062f\u064a\u0627\u062a \u0627\u0644\u062a\u064a \u0648\u0627\u062c\u0647\u062a\u0647\u0627 \u0623\u062b\u0646\u0627\u0621 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='challenges_de_9', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u062d\u062f\u064a\u0627\u062a \u0627\u0644\u062a\u064a \u0648\u0627\u062c\u0647\u062a\u0647\u0627 \u0623\u062b\u0646\u0627\u0621 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='challenges_de_prep', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u062d\u062f\u064a\u0627\u062a \u0627\u0644\u062a\u064a \u0648\u0627\u062c\u0647\u062a\u0647\u0627 \u0623\u062b\u0646\u0627\u0621 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='evaluate_steps_de_2', + field=models.TextField(blank=True, null=True, verbose_name='\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='evaluate_steps_de_3', + field=models.TextField(blank=True, null=True, verbose_name='\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='evaluate_steps_de_9', + field=models.TextField(blank=True, null=True, verbose_name='\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='evaluate_steps_de_prep', + field=models.TextField(blank=True, null=True, verbose_name='\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='implemented_de_2', + field=models.BooleanField(default=False, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + migrations.AddField( + model_name='evaluation', + name='implemented_de_3', + field=models.BooleanField(default=False, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + migrations.AddField( + model_name='evaluation', + name='implemented_de_9', + field=models.BooleanField(default=False, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + migrations.AddField( + model_name='evaluation', + name='implemented_de_prep', + field=models.BooleanField(default=False, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + migrations.AddField( + model_name='evaluation', + name='reasons_no_de_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0633\u0628\u0628 \u0622\u062e\u0631'), + ), + migrations.AddField( + model_name='evaluation', + name='reasons_no_de_3', + field=models.TextField(blank=True, null=True, verbose_name='\u0633\u0628\u0628 \u0622\u062e\u0631'), + ), + migrations.AddField( + model_name='evaluation', + name='reasons_no_de_9', + field=models.TextField(blank=True, null=True, verbose_name='\u0633\u0628\u0628 \u0622\u062e\u0631'), + ), + migrations.AddField( + model_name='evaluation', + name='reasons_no_de_prep', + field=models.TextField(blank=True, null=True, verbose_name='\u0633\u0628\u0628 \u0622\u062e\u0631'), + ), + migrations.AddField( + model_name='evaluation', + name='steps_de_2', + field=models.TextField(blank=True, null=True, verbose_name='\u0645\u0627 \u0647\u064a \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='steps_de_3', + field=models.TextField(blank=True, null=True, verbose_name='\u0645\u0627 \u0647\u064a \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='steps_de_9', + field=models.TextField(blank=True, null=True, verbose_name='\u0645\u0627 \u0647\u064a \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AddField( + model_name='evaluation', + name='steps_de_prep', + field=models.TextField(blank=True, null=True, verbose_name='\u0645\u0627 \u0647\u064a \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_che_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_che_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_his_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_his_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_phy_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_phy_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_che_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_che_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_his_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_his_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_phy_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_phy_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_che_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_che_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_his_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_his_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_phy_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_phy_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_total_std', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='\u0645\u062c\u0645\u0648\u0639 \u0627\u0644\u062a\u0644\u0627\u0645\u0630\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_total_std_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='\u0625\u062c\u0645\u0627\u0644\u064a \u0627\u0644\u0637\u0644\u0627\u0628 \u0627\u0644\u0630\u064a\u0646 \u064a\u062a\u0627\u0628\u0639\u0648\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_total_teachers', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='\u0625\u062c\u0645\u0627\u0644\u064a \u0627\u0644\u0627\u0633\u0627\u062a\u0630\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_total_teachers_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u0627\u0633\u0627\u062a\u0630\u0629 \u0627\u0644\u0630\u064a\u0646 \u0627\u0644\u062a\u0632\u0645\u0648\u0627 \u0628\u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AlterField( + model_name='evaluation', + name='challenges_de', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u062a\u062d\u062f\u064a\u0627\u062a \u0627\u0644\u062a\u064a \u0648\u0627\u062c\u0647\u062a\u0647\u0627 \u0623\u062b\u0646\u0627\u0621 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_ara_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_ara_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_civic_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_civic_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_eng_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_eng_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_fr_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_fr_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_geo_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_geo_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_math_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_math_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_sc_completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_sc_remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluation', + name='evaluate_steps_de', + field=models.TextField(blank=True, null=True, verbose_name='\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AlterField( + model_name='evaluation', + name='implemented_de', + field=models.BooleanField(default=False, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + migrations.AlterField( + model_name='evaluation', + name='other_notes_de', + field=models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0645\u0644\u0627\u062d\u0638\u0627\u062a'), + ), + migrations.AlterField( + model_name='evaluation', + name='reasons_no_de', + field=models.TextField(blank=True, null=True, verbose_name='\u0633\u0628\u0628 \u0622\u062e\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='steps_de', + field=models.TextField(blank=True, null=True, verbose_name='\u0645\u0627 \u0647\u064a \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u0645\u062a\u0628\u0639\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f'), + ), + migrations.AlterField( + model_name='evaluation', + name='total_teaching_days', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99), (100, 100), (101, 101), (102, 102), (103, 103), (104, 104), (105, 105), (106, 106), (107, 107), (108, 108), (109, 109), (110, 110), (111, 111), (112, 112), (113, 113), (114, 114), (115, 115), (116, 116), (117, 117), (118, 118), (119, 119), (120, 120), (121, 121), (122, 122), (123, 123), (124, 124), (125, 125), (126, 126), (127, 127), (128, 128), (129, 129), (130, 130), (131, 131), (132, 132), (133, 133), (134, 134), (135, 135), (136, 136), (137, 137), (138, 138), (139, 139), (140, 140), (141, 141), (142, 142), (143, 143), (144, 144), (145, 145), (146, 146), (147, 147), (148, 148), (149, 149), (150, 150), (151, 151), (152, 152), (153, 153), (154, 154), (155, 155), (156, 156), (157, 157), (158, 158), (159, 159), (160, 160), (161, 161), (162, 162), (163, 163), (164, 164), (165, 165), (166, 166), (167, 167), (168, 168), (169, 169), (170, 170), (171, 171), (172, 172), (173, 173), (174, 174), (175, 175), (176, 176), (177, 177), (178, 178), (179, 179), (180, 180), (181, 181), (182, 182), (183, 183), (184, 184), (185, 185), (186, 186), (187, 187), (188, 188), (189, 189), (190, 190), (191, 191), (192, 192), (193, 193), (194, 194), (195, 195), (196, 196), (197, 197), (198, 198), (199, 199), (200, 200), (201, 201), (202, 202), (203, 203), (204, 204), (205, 205), (206, 206), (207, 207), (208, 208), (209, 209), (210, 210), (211, 211), (212, 212), (213, 213), (214, 214), (215, 215), (216, 216), (217, 217), (218, 218), (219, 219), (220, 220), (221, 221), (222, 222), (223, 223), (224, 224), (225, 225), (226, 226), (227, 227), (228, 228), (229, 229), (230, 230), (231, 231), (232, 232), (233, 233), (234, 234), (235, 235), (236, 236), (237, 237), (238, 238), (239, 239), (240, 240), (241, 241), (242, 242), (243, 243), (244, 244), (245, 245), (246, 246), (247, 247), (248, 248), (249, 249), (250, 250), (251, 251), (252, 252), (253, 253), (254, 254), (255, 255), (256, 256), (257, 257), (258, 258), (259, 259), (260, 260), (261, 261), (262, 262), (263, 263), (264, 264), (265, 265), (266, 266), (267, 267), (268, 268), (269, 269), (270, 270), (271, 271), (272, 272), (273, 273), (274, 274), (275, 275), (276, 276), (277, 277), (278, 278), (279, 279), (280, 280), (281, 281), (282, 282), (283, 283), (284, 284), (285, 285), (286, 286), (287, 287), (288, 288), (289, 289), (290, 290), (291, 291), (292, 292), (293, 293), (294, 294), (295, 295), (296, 296), (297, 297), (298, 298), (299, 299), (300, 300), (301, 301), (302, 302), (303, 303), (304, 304), (305, 305), (306, 306), (307, 307), (308, 308), (309, 309), (310, 310), (311, 311), (312, 312), (313, 313), (314, 314), (315, 315), (316, 316), (317, 317), (318, 318), (319, 319), (320, 320), (321, 321), (322, 322), (323, 323), (324, 324), (325, 325), (326, 326), (327, 327), (328, 328), (329, 329), (330, 330), (331, 331), (332, 332), (333, 333), (334, 334), (335, 335), (336, 336), (337, 337), (338, 338), (339, 339), (340, 340), (341, 341), (342, 342), (343, 343), (344, 344), (345, 345), (346, 346), (347, 347), (348, 348), (349, 349), (350, 350), (351, 351), (352, 352), (353, 353), (354, 354), (355, 355), (356, 356), (357, 357), (358, 358), (359, 359), (360, 360), (361, 361), (362, 362), (363, 363), (364, 364)], default=0, null=True, verbose_name='\u0623\u064a\u0627\u0645 \u0627\u0644\u062a\u062f\u0631\u064a\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u0645\u0646\u0630 \u0628\u062f\u0627\u064a\u0629 \u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u062f\u0631\u0627\u0633\u064a'), + ), + migrations.AlterField( + model_name='evaluationdt', + name='completed', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u062d\u062a\u0649 \u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluationdt', + name='completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluationdt', + name='evaluation', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='schools.Evaluation', verbose_name='\u062a\u0631\u0628\u064a\u0629'), + ), + migrations.AlterField( + model_name='evaluationdt', + name='remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + ] diff --git a/student_registration/schools/migrations/0058_auto_20200324_1548.py b/student_registration/schools/migrations/0058_auto_20200324_1548.py new file mode 100644 index 000000000..54051ab51 --- /dev/null +++ b/student_registration/schools/migrations/0058_auto_20200324_1548.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-24 13:48 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0057_auto_20200322_2359'), + ] + + operations = [ + migrations.AddField( + model_name='evaluation', + name='total_teaching_days_tillnow', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99), (100, 100), (101, 101), (102, 102), (103, 103), (104, 104), (105, 105), (106, 106), (107, 107), (108, 108), (109, 109), (110, 110), (111, 111), (112, 112), (113, 113), (114, 114), (115, 115), (116, 116), (117, 117), (118, 118), (119, 119), (120, 120), (121, 121), (122, 122), (123, 123), (124, 124), (125, 125), (126, 126), (127, 127), (128, 128), (129, 129), (130, 130), (131, 131), (132, 132), (133, 133), (134, 134), (135, 135), (136, 136), (137, 137), (138, 138), (139, 139), (140, 140), (141, 141), (142, 142), (143, 143), (144, 144), (145, 145), (146, 146), (147, 147), (148, 148), (149, 149), (150, 150), (151, 151), (152, 152), (153, 153), (154, 154), (155, 155), (156, 156), (157, 157), (158, 158), (159, 159), (160, 160), (161, 161), (162, 162), (163, 163), (164, 164), (165, 165), (166, 166), (167, 167), (168, 168), (169, 169), (170, 170), (171, 171), (172, 172), (173, 173), (174, 174), (175, 175), (176, 176), (177, 177), (178, 178), (179, 179), (180, 180), (181, 181), (182, 182), (183, 183), (184, 184), (185, 185), (186, 186), (187, 187), (188, 188), (189, 189), (190, 190), (191, 191), (192, 192), (193, 193), (194, 194), (195, 195), (196, 196), (197, 197), (198, 198), (199, 199), (200, 200), (201, 201), (202, 202), (203, 203), (204, 204), (205, 205), (206, 206), (207, 207), (208, 208), (209, 209), (210, 210), (211, 211), (212, 212), (213, 213), (214, 214), (215, 215), (216, 216), (217, 217), (218, 218), (219, 219), (220, 220), (221, 221), (222, 222), (223, 223), (224, 224), (225, 225), (226, 226), (227, 227), (228, 228), (229, 229), (230, 230), (231, 231), (232, 232), (233, 233), (234, 234), (235, 235), (236, 236), (237, 237), (238, 238), (239, 239), (240, 240), (241, 241), (242, 242), (243, 243), (244, 244), (245, 245), (246, 246), (247, 247), (248, 248), (249, 249), (250, 250), (251, 251), (252, 252), (253, 253), (254, 254), (255, 255), (256, 256), (257, 257), (258, 258), (259, 259), (260, 260), (261, 261), (262, 262), (263, 263), (264, 264), (265, 265), (266, 266), (267, 267), (268, 268), (269, 269), (270, 270), (271, 271), (272, 272), (273, 273), (274, 274), (275, 275), (276, 276), (277, 277), (278, 278), (279, 279), (280, 280), (281, 281), (282, 282), (283, 283), (284, 284), (285, 285), (286, 286), (287, 287), (288, 288), (289, 289), (290, 290), (291, 291), (292, 292), (293, 293), (294, 294), (295, 295), (296, 296), (297, 297), (298, 298), (299, 299), (300, 300), (301, 301), (302, 302), (303, 303), (304, 304), (305, 305), (306, 306), (307, 307), (308, 308), (309, 309), (310, 310), (311, 311), (312, 312), (313, 313), (314, 314), (315, 315), (316, 316), (317, 317), (318, 318), (319, 319), (320, 320), (321, 321), (322, 322), (323, 323), (324, 324), (325, 325), (326, 326), (327, 327), (328, 328), (329, 329), (330, 330), (331, 331), (332, 332), (333, 333), (334, 334), (335, 335), (336, 336), (337, 337), (338, 338), (339, 339), (340, 340), (341, 341), (342, 342), (343, 343), (344, 344), (345, 345), (346, 346), (347, 347), (348, 348), (349, 349), (350, 350), (351, 351), (352, 352), (353, 353), (354, 354), (355, 355), (356, 356), (357, 357), (358, 358), (359, 359), (360, 360), (361, 361), (362, 362), (363, 363), (364, 364)], default=0, null=True, verbose_name='Teaching days from the beginning of march till now'), + ), + migrations.AlterField( + model_name='evaluation', + name='total_teaching_days', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99), (100, 100), (101, 101), (102, 102), (103, 103), (104, 104), (105, 105), (106, 106), (107, 107), (108, 108), (109, 109), (110, 110), (111, 111), (112, 112), (113, 113), (114, 114), (115, 115), (116, 116), (117, 117), (118, 118), (119, 119), (120, 120), (121, 121), (122, 122), (123, 123), (124, 124), (125, 125), (126, 126), (127, 127), (128, 128), (129, 129), (130, 130), (131, 131), (132, 132), (133, 133), (134, 134), (135, 135), (136, 136), (137, 137), (138, 138), (139, 139), (140, 140), (141, 141), (142, 142), (143, 143), (144, 144), (145, 145), (146, 146), (147, 147), (148, 148), (149, 149), (150, 150), (151, 151), (152, 152), (153, 153), (154, 154), (155, 155), (156, 156), (157, 157), (158, 158), (159, 159), (160, 160), (161, 161), (162, 162), (163, 163), (164, 164), (165, 165), (166, 166), (167, 167), (168, 168), (169, 169), (170, 170), (171, 171), (172, 172), (173, 173), (174, 174), (175, 175), (176, 176), (177, 177), (178, 178), (179, 179), (180, 180), (181, 181), (182, 182), (183, 183), (184, 184), (185, 185), (186, 186), (187, 187), (188, 188), (189, 189), (190, 190), (191, 191), (192, 192), (193, 193), (194, 194), (195, 195), (196, 196), (197, 197), (198, 198), (199, 199), (200, 200), (201, 201), (202, 202), (203, 203), (204, 204), (205, 205), (206, 206), (207, 207), (208, 208), (209, 209), (210, 210), (211, 211), (212, 212), (213, 213), (214, 214), (215, 215), (216, 216), (217, 217), (218, 218), (219, 219), (220, 220), (221, 221), (222, 222), (223, 223), (224, 224), (225, 225), (226, 226), (227, 227), (228, 228), (229, 229), (230, 230), (231, 231), (232, 232), (233, 233), (234, 234), (235, 235), (236, 236), (237, 237), (238, 238), (239, 239), (240, 240), (241, 241), (242, 242), (243, 243), (244, 244), (245, 245), (246, 246), (247, 247), (248, 248), (249, 249), (250, 250), (251, 251), (252, 252), (253, 253), (254, 254), (255, 255), (256, 256), (257, 257), (258, 258), (259, 259), (260, 260), (261, 261), (262, 262), (263, 263), (264, 264), (265, 265), (266, 266), (267, 267), (268, 268), (269, 269), (270, 270), (271, 271), (272, 272), (273, 273), (274, 274), (275, 275), (276, 276), (277, 277), (278, 278), (279, 279), (280, 280), (281, 281), (282, 282), (283, 283), (284, 284), (285, 285), (286, 286), (287, 287), (288, 288), (289, 289), (290, 290), (291, 291), (292, 292), (293, 293), (294, 294), (295, 295), (296, 296), (297, 297), (298, 298), (299, 299), (300, 300), (301, 301), (302, 302), (303, 303), (304, 304), (305, 305), (306, 306), (307, 307), (308, 308), (309, 309), (310, 310), (311, 311), (312, 312), (313, 313), (314, 314), (315, 315), (316, 316), (317, 317), (318, 318), (319, 319), (320, 320), (321, 321), (322, 322), (323, 323), (324, 324), (325, 325), (326, 326), (327, 327), (328, 328), (329, 329), (330, 330), (331, 331), (332, 332), (333, 333), (334, 334), (335, 335), (336, 336), (337, 337), (338, 338), (339, 339), (340, 340), (341, 341), (342, 342), (343, 343), (344, 344), (345, 345), (346, 346), (347, 347), (348, 348), (349, 349), (350, 350), (351, 351), (352, 352), (353, 353), (354, 354), (355, 355), (356, 356), (357, 357), (358, 358), (359, 359), (360, 360), (361, 361), (362, 362), (363, 363), (364, 364)], default=0, null=True, verbose_name='Teaching days completed since the beginning of the school year till the end of february'), + ), + ] diff --git a/student_registration/schools/migrations/0059_auto_20200325_0757.py b/student_registration/schools/migrations/0059_auto_20200325_0757.py new file mode 100644 index 000000000..66d9c5669 --- /dev/null +++ b/student_registration/schools/migrations/0059_auto_20200325_0757.py @@ -0,0 +1,435 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-25 05:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0058_auto_20200324_1548'), + ] + + operations = [ + migrations.AlterField( + model_name='evaluation', + name='c1_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='implemented_de', + field=models.CharField(blank=True, choices=[('yes', '\u0646\u0639\u0645'), ('no', '\u0643\u0644\u0627')], default='no', max_length=3, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + migrations.AlterField( + model_name='evaluation', + name='total_teaching_days', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99), (100, 100), (101, 101), (102, 102), (103, 103), (104, 104), (105, 105), (106, 106), (107, 107), (108, 108), (109, 109), (110, 110), (111, 111), (112, 112), (113, 113), (114, 114), (115, 115), (116, 116), (117, 117), (118, 118), (119, 119), (120, 120), (121, 121), (122, 122), (123, 123), (124, 124), (125, 125), (126, 126), (127, 127), (128, 128), (129, 129), (130, 130), (131, 131), (132, 132), (133, 133), (134, 134), (135, 135), (136, 136), (137, 137), (138, 138), (139, 139), (140, 140), (141, 141), (142, 142), (143, 143), (144, 144), (145, 145), (146, 146), (147, 147), (148, 148), (149, 149), (150, 150), (151, 151), (152, 152), (153, 153), (154, 154), (155, 155), (156, 156), (157, 157), (158, 158), (159, 159), (160, 160), (161, 161), (162, 162), (163, 163), (164, 164), (165, 165), (166, 166), (167, 167), (168, 168), (169, 169), (170, 170), (171, 171), (172, 172), (173, 173), (174, 174), (175, 175), (176, 176), (177, 177), (178, 178), (179, 179), (180, 180), (181, 181), (182, 182), (183, 183), (184, 184), (185, 185), (186, 186), (187, 187), (188, 188), (189, 189), (190, 190), (191, 191), (192, 192), (193, 193), (194, 194), (195, 195), (196, 196), (197, 197), (198, 198), (199, 199), (200, 200), (201, 201), (202, 202), (203, 203), (204, 204), (205, 205), (206, 206), (207, 207), (208, 208), (209, 209), (210, 210), (211, 211), (212, 212), (213, 213), (214, 214), (215, 215), (216, 216), (217, 217), (218, 218), (219, 219), (220, 220), (221, 221), (222, 222), (223, 223), (224, 224), (225, 225), (226, 226), (227, 227), (228, 228), (229, 229), (230, 230), (231, 231), (232, 232), (233, 233), (234, 234), (235, 235), (236, 236), (237, 237), (238, 238), (239, 239), (240, 240), (241, 241), (242, 242), (243, 243), (244, 244), (245, 245), (246, 246), (247, 247), (248, 248), (249, 249), (250, 250), (251, 251), (252, 252), (253, 253), (254, 254), (255, 255), (256, 256), (257, 257), (258, 258), (259, 259), (260, 260), (261, 261), (262, 262), (263, 263), (264, 264), (265, 265), (266, 266), (267, 267), (268, 268), (269, 269), (270, 270), (271, 271), (272, 272), (273, 273), (274, 274), (275, 275), (276, 276), (277, 277), (278, 278), (279, 279), (280, 280), (281, 281), (282, 282), (283, 283), (284, 284), (285, 285), (286, 286), (287, 287), (288, 288), (289, 289), (290, 290), (291, 291), (292, 292), (293, 293), (294, 294), (295, 295), (296, 296), (297, 297), (298, 298), (299, 299), (300, 300), (301, 301), (302, 302), (303, 303), (304, 304), (305, 305), (306, 306), (307, 307), (308, 308), (309, 309), (310, 310), (311, 311), (312, 312), (313, 313), (314, 314), (315, 315), (316, 316), (317, 317), (318, 318), (319, 319), (320, 320), (321, 321), (322, 322), (323, 323), (324, 324), (325, 325), (326, 326), (327, 327), (328, 328), (329, 329), (330, 330), (331, 331), (332, 332), (333, 333), (334, 334), (335, 335), (336, 336), (337, 337), (338, 338), (339, 339), (340, 340), (341, 341), (342, 342), (343, 343), (344, 344), (345, 345), (346, 346), (347, 347), (348, 348), (349, 349), (350, 350), (351, 351), (352, 352), (353, 353), (354, 354), (355, 355), (356, 356), (357, 357), (358, 358), (359, 359), (360, 360), (361, 361), (362, 362), (363, 363), (364, 364)], default=0, null=True, verbose_name='\u0623\u064a\u0627\u0645 \u0627\u0644\u062a\u062f\u0631\u064a\u0633 \u0627\u0644\u0645\u0643\u062a\u0645\u0644\u0629 \u0645\u0646\u0630 \u0628\u062f\u0627\u064a\u0629 \u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u062f\u0631\u0627\u0633\u064a \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629\xa0\u0641\u0628\u0631\u0627\u064a\u0631'), + ), + migrations.AlterField( + model_name='evaluation', + name='total_teaching_days_tillnow', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99), (100, 100), (101, 101), (102, 102), (103, 103), (104, 104), (105, 105), (106, 106), (107, 107), (108, 108), (109, 109), (110, 110), (111, 111), (112, 112), (113, 113), (114, 114), (115, 115), (116, 116), (117, 117), (118, 118), (119, 119), (120, 120), (121, 121), (122, 122), (123, 123), (124, 124), (125, 125), (126, 126), (127, 127), (128, 128), (129, 129), (130, 130), (131, 131), (132, 132), (133, 133), (134, 134), (135, 135), (136, 136), (137, 137), (138, 138), (139, 139), (140, 140), (141, 141), (142, 142), (143, 143), (144, 144), (145, 145), (146, 146), (147, 147), (148, 148), (149, 149), (150, 150), (151, 151), (152, 152), (153, 153), (154, 154), (155, 155), (156, 156), (157, 157), (158, 158), (159, 159), (160, 160), (161, 161), (162, 162), (163, 163), (164, 164), (165, 165), (166, 166), (167, 167), (168, 168), (169, 169), (170, 170), (171, 171), (172, 172), (173, 173), (174, 174), (175, 175), (176, 176), (177, 177), (178, 178), (179, 179), (180, 180), (181, 181), (182, 182), (183, 183), (184, 184), (185, 185), (186, 186), (187, 187), (188, 188), (189, 189), (190, 190), (191, 191), (192, 192), (193, 193), (194, 194), (195, 195), (196, 196), (197, 197), (198, 198), (199, 199), (200, 200), (201, 201), (202, 202), (203, 203), (204, 204), (205, 205), (206, 206), (207, 207), (208, 208), (209, 209), (210, 210), (211, 211), (212, 212), (213, 213), (214, 214), (215, 215), (216, 216), (217, 217), (218, 218), (219, 219), (220, 220), (221, 221), (222, 222), (223, 223), (224, 224), (225, 225), (226, 226), (227, 227), (228, 228), (229, 229), (230, 230), (231, 231), (232, 232), (233, 233), (234, 234), (235, 235), (236, 236), (237, 237), (238, 238), (239, 239), (240, 240), (241, 241), (242, 242), (243, 243), (244, 244), (245, 245), (246, 246), (247, 247), (248, 248), (249, 249), (250, 250), (251, 251), (252, 252), (253, 253), (254, 254), (255, 255), (256, 256), (257, 257), (258, 258), (259, 259), (260, 260), (261, 261), (262, 262), (263, 263), (264, 264), (265, 265), (266, 266), (267, 267), (268, 268), (269, 269), (270, 270), (271, 271), (272, 272), (273, 273), (274, 274), (275, 275), (276, 276), (277, 277), (278, 278), (279, 279), (280, 280), (281, 281), (282, 282), (283, 283), (284, 284), (285, 285), (286, 286), (287, 287), (288, 288), (289, 289), (290, 290), (291, 291), (292, 292), (293, 293), (294, 294), (295, 295), (296, 296), (297, 297), (298, 298), (299, 299), (300, 300), (301, 301), (302, 302), (303, 303), (304, 304), (305, 305), (306, 306), (307, 307), (308, 308), (309, 309), (310, 310), (311, 311), (312, 312), (313, 313), (314, 314), (315, 315), (316, 316), (317, 317), (318, 318), (319, 319), (320, 320), (321, 321), (322, 322), (323, 323), (324, 324), (325, 325), (326, 326), (327, 327), (328, 328), (329, 329), (330, 330), (331, 331), (332, 332), (333, 333), (334, 334), (335, 335), (336, 336), (337, 337), (338, 338), (339, 339), (340, 340), (341, 341), (342, 342), (343, 343), (344, 344), (345, 345), (346, 346), (347, 347), (348, 348), (349, 349), (350, 350), (351, 351), (352, 352), (353, 353), (354, 354), (355, 355), (356, 356), (357, 357), (358, 358), (359, 359), (360, 360), (361, 361), (362, 362), (363, 363), (364, 364)], default=0, null=True, verbose_name='\u0623\u064a\u0627\u0645 \u0627\u0644\u062a\u062f\u0631\u064a\u0633 \u0645\u0646 \u0628\u062f\u0627\u064a\u0629 \u0645\u0627\u0631\u0633 \u062d\u062a\u0649 \u0627\u0644\u0622\u0646'), + ), + migrations.AlterField( + model_name='evaluationdt', + name='completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + migrations.AlterField( + model_name='evaluationdt', + name='remaining_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062e\u0644\u0627\u0644 \u0634\u0647\u0631 \u0627\u0630\u0627\u0631'), + ), + ] diff --git a/student_registration/schools/migrations/0060_auto_20200325_0802.py b/student_registration/schools/migrations/0060_auto_20200325_0802.py new file mode 100644 index 000000000..78981776c --- /dev/null +++ b/student_registration/schools/migrations/0060_auto_20200325_0802.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-25 06:02 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0059_auto_20200325_0757'), + ] + + operations = [ + migrations.AlterField( + model_name='evaluation', + name='implemented_de_2', + field=models.CharField(blank=True, choices=[('yes', '\u0646\u0639\u0645'), ('no', '\u0643\u0644\u0627')], default='no', max_length=3, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + migrations.AlterField( + model_name='evaluation', + name='implemented_de_3', + field=models.CharField(blank=True, choices=[('yes', '\u0646\u0639\u0645'), ('no', '\u0643\u0644\u0627')], default='no', max_length=3, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + migrations.AlterField( + model_name='evaluation', + name='implemented_de_9', + field=models.CharField(blank=True, choices=[('yes', '\u0646\u0639\u0645'), ('no', '\u0643\u0644\u0627')], default='no', max_length=3, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + migrations.AlterField( + model_name='evaluation', + name='implemented_de_prep', + field=models.CharField(blank=True, choices=[('yes', '\u0646\u0639\u0645'), ('no', '\u0643\u0644\u0627')], default='no', max_length=3, verbose_name='\u0647\u0644 \u0646\u0641\u0630\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f\u061f'), + ), + ] diff --git a/student_registration/schools/migrations/0061_auto_20200412_1826.py b/student_registration/schools/migrations/0061_auto_20200412_1826.py new file mode 100644 index 000000000..bbe188e82 --- /dev/null +++ b/student_registration/schools/migrations/0061_auto_20200412_1826.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-04-12 15:26 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0060_auto_20200325_0802'), + ] + + operations = [ + + + + ] diff --git a/student_registration/schools/migrations/0062_auto_20200412_1830.py b/student_registration/schools/migrations/0062_auto_20200412_1830.py new file mode 100644 index 000000000..e3e1f3a7e --- /dev/null +++ b/student_registration/schools/migrations/0062_auto_20200412_1830.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-04-12 15:30 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0061_auto_20200412_1826'), + ] + + operations = [ + migrations.CreateModel( + name='PublicHolidays', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('holiday', models.DateField(unique=True, verbose_name='Public holidays')), + ], + ), + # migrations.RemoveField( + # model_name='evaluationdt', + # name='classroom', + # ), + # migrations.RemoveField( + # model_name='evaluationdt', + # name='evaluation', + # ), + # migrations.RemoveField( + # model_name='evaluationdt', + # name='subject', + # ), + # migrations.DeleteModel( + # name='Subject', + # ), + # migrations.AddField( + # model_name='classroom', + # name='classroom_type', + # field=models.CharField(blank=True, max_length=2, null=True), + # ), + # migrations.DeleteModel( + # name='EvaluationDt', + # ), + ] diff --git a/student_registration/schools/migrations/0063_schl_subject_schl_survey.py b/student_registration/schools/migrations/0063_schl_subject_schl_survey.py new file mode 100644 index 000000000..530999ccb --- /dev/null +++ b/student_registration/schools/migrations/0063_schl_subject_schl_survey.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-04-12 16:13 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0062_auto_20200412_1830'), + ] + + operations = [ + migrations.CreateModel( + name='Schl_Subject', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, unique=True, verbose_name='Subject')), + ], + ), + migrations.CreateModel( + name='Schl_Survey', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('teachingdays_tillfeb', models.IntegerField(blank=True, null=True)), + ('teachingdays_frommars', models.IntegerField(blank=True, null=True)), + ('teachingdays_remaining', models.IntegerField(blank=True, null=True)), + ('classroom', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.ClassRoom', verbose_name='\u0627\u0644\u0635\u0641')), + ('schl_subject', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.Schl_Subject', verbose_name='Course')), + ('school', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.School', verbose_name='\u0627\u0644\u0645\u062f\u0631\u0633\u0629')), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/student_registration/schools/migrations/0064_auto_20200413_1212.py b/student_registration/schools/migrations/0064_auto_20200413_1212.py new file mode 100644 index 000000000..2dcbc0cad --- /dev/null +++ b/student_registration/schools/migrations/0064_auto_20200413_1212.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-04-13 09:12 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0063_schl_subject_schl_survey'), + ] + + operations = [ + migrations.CreateModel( + name='Schl_Survey_Class', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('de_implemented', models.BooleanField(default=False, verbose_name='Distance education implemented ?')), + ('de_usedmethod_1', models.TextField(blank=True, null=True, verbose_name='The methods used during the distance education plan')), + ('de_challenge_1', models.TextField(blank=True, null=True, verbose_name='The challenges during the distance education plan')), + ('de_negativenotes_1', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_positivenotes_1', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_interactedstudents_1', models.TextField(blank=True, null=True, verbose_name='The number of interacted students ')), + ('de_usedmethod_2', models.TextField(blank=True, null=True, verbose_name='The methods used during the distance education plan')), + ('de_challenge_2', models.TextField(blank=True, null=True, verbose_name='The challenges during the distance education plan')), + ('de_negativenotes_2', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_positivenotes_2', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_interactedstudents_2', models.TextField(blank=True, null=True, verbose_name='The number of interacted students ')), + ('de_usedmethod_3', models.TextField(blank=True, null=True, verbose_name='The methods used during the distance education plan')), + ('de_challenge_3', models.TextField(blank=True, null=True, verbose_name='The challenges during the distance education plan')), + ('de_negativenotes_3', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_positivenotes_3', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_interactedstudents_3', models.TextField(blank=True, null=True, verbose_name='The number of interacted students ')), + ('de_usedmethod_4', models.TextField(blank=True, null=True, verbose_name='The methods used during the distance education plan')), + ('de_challenge_4', models.TextField(blank=True, null=True, verbose_name='The challenges during the distance education plan')), + ('de_negativenotes_4', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_positivenotes_4', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_interactedstudents_4', models.TextField(blank=True, null=True, verbose_name='The number of interacted students ')), + ('de_usedmethod_5', models.TextField(blank=True, null=True, verbose_name='The methods used during the distance education plan')), + ('de_challenge_5', models.TextField(blank=True, null=True, verbose_name='The challenges during the distance education plan')), + ('de_negativenotes_5', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_positivenotes_5', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_interactedstudents_5', models.TextField(blank=True, null=True, verbose_name='The number of interacted students ')), + ('de_usedmethod_6', models.TextField(blank=True, null=True, verbose_name='The methods used during the distance education plan')), + ('de_challenge_6', models.TextField(blank=True, null=True, verbose_name='The challenges during the distance education plan')), + ('de_negativenotes_6', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_positivenotes_6', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_interactedstudents_6', models.TextField(blank=True, null=True, verbose_name='The number of interacted students ')), + ('de_usedmethod_7', models.TextField(blank=True, null=True, verbose_name='The methods used during the distance education plan')), + ('de_challenge_7', models.TextField(blank=True, null=True, verbose_name='The challenges during the distance education plan')), + ('de_negativenotes_7', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_positivenotes_7', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_interactedstudents_7', models.TextField(blank=True, null=True, verbose_name='The number of interacted students ')), + ('de_usedmethod_8', models.TextField(blank=True, null=True, verbose_name='The methods used during the distance education plan')), + ('de_challenge_8', models.TextField(blank=True, null=True, verbose_name='The challenges during the distance education plan')), + ('de_negativenotes_8', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_positivenotes_8', models.TextField(blank=True, null=True, verbose_name='The negative notes ')), + ('de_interactedstudents_8', models.TextField(blank=True, null=True, verbose_name='The number of interacted students ')), + ('nbstudents', models.IntegerField(blank=True, null=True)), + ('de_nbstudents', models.IntegerField(blank=True, null=True)), + ('nbteachers', models.IntegerField(blank=True, null=True)), + ('de_nbteachers', models.IntegerField(blank=True, null=True)), + ('classroom', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.ClassRoom', verbose_name='\u0627\u0644\u0635\u0641')), + ('school', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.School', verbose_name='\u0627\u0644\u0645\u062f\u0631\u0633\u0629')), + ], + options={ + 'abstract': False, + }, + ), + migrations.AlterModelOptions( + name='schl_subject', + options={'verbose_name_plural': 'Subjects'}, + ), + ] diff --git a/student_registration/schools/migrations/0065_auto_20200423_1024.py b/student_registration/schools/migrations/0065_auto_20200423_1024.py new file mode 100644 index 000000000..b5d300785 --- /dev/null +++ b/student_registration/schools/migrations/0065_auto_20200423_1024.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-04-23 07:24 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0064_auto_20200413_1212'), + ] + + operations = [ + migrations.AddField( + model_name='classroom', + name='classroom_type', + field=models.CharField(blank=True, max_length=2, null=True), + ), + migrations.AlterField( + model_name='classroom', + name='classroom_type', + field=models.CharField(blank=True, choices=[('PV', 'Private School'), ('PU', 'Public School')], max_length=2, null=True), + ), + ] diff --git a/student_registration/schools/migrations/0066_auto_20200428_1043.py b/student_registration/schools/migrations/0066_auto_20200428_1043.py new file mode 100644 index 000000000..6ec5f9c2d --- /dev/null +++ b/student_registration/schools/migrations/0066_auto_20200428_1043.py @@ -0,0 +1,410 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-04-28 07:43 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0065_auto_20200423_1024'), + ] + + operations = [ + migrations.AlterField( + model_name='evaluation', + name='c1_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c1_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c2_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c3_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c4_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c5_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c6_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c7_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c8_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_che_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_his_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_phy_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='c9_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_ara_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_civic_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_eng_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_fr_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_geo_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_math_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + migrations.AlterField( + model_name='evaluation', + name='cprep_sc_completed_de', + field=models.IntegerField(blank=True, choices=[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31), (32, 32), (33, 33), (34, 34), (35, 35), (36, 36), (37, 37), (38, 38), (39, 39), (40, 40), (41, 41), (42, 42), (43, 43), (44, 44), (45, 45), (46, 46), (47, 47), (48, 48), (49, 49), (50, 50), (51, 51), (52, 52), (53, 53), (54, 54), (55, 55), (56, 56), (57, 57), (58, 58), (59, 59), (60, 60), (61, 61), (62, 62), (63, 63), (64, 64), (65, 65), (66, 66), (67, 67), (68, 68), (69, 69), (70, 70), (71, 71), (72, 72), (73, 73), (74, 74), (75, 75), (76, 76), (77, 77), (78, 78), (79, 79), (80, 80), (81, 81), (82, 82), (83, 83), (84, 84), (85, 85), (86, 86), (87, 87), (88, 88), (89, 89), (90, 90), (91, 91), (92, 92), (93, 93), (94, 94), (95, 95), (96, 96), (97, 97), (98, 98), (99, 99)], default=0, null=True, verbose_name='\u0639\u062f\u062f \u0627\u0644\u062f\u0631\u0648\u0633 \u0627\u0644\u0645\u0646\u062c\u0632\u0629 \u0641\u064a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0646 \u0628\u0639\u062f \u062d\u062a\u0649 \u0646\u0647\u0627\u064a\u0629 \u0634\u0647\u0631 \u0646\u064a\u0633\u0627\u0646'), + ), + ] diff --git a/student_registration/schools/models.py b/student_registration/schools/models.py index 608d60837..39d08a449 100644 --- a/student_registration/schools/models.py +++ b/student_registration/schools/models.py @@ -1,5 +1,5 @@ from __future__ import unicode_literals, absolute_import, division - +from django.conf import settings from django.db import models from model_utils import Choices from model_utils.models import TimeStampedModel @@ -7,6 +7,29 @@ from django.utils.translation import ugettext as _ # from django.contrib.gis.db import models from student_registration.locations.models import Location +from student_registration.staffs.models import Bank +from django.core.validators import MaxValueValidator, MinValueValidator + + +class Coordinator(models.Model): + name = models.CharField(max_length=200, unique=True) + + class Meta: + ordering = ['name'] + verbose_name = 'Coordinator' + + def __unicode__(self): + return self.name + + +class PublicHolidays(models.Model): + holiday = models.DateField( + unique=True, + verbose_name=_('Public holidays') + ) + + def __unicode__(self): + return self.holiday.strftime("%m/%d/%Y") class School(models.Model): @@ -78,11 +101,18 @@ class School(models.Model): blank=True, null=True, verbose_name=_('School IT phone number') ) - field_coordinator_name = models.CharField( - max_length=100, + #field_coordinator_name = models.CharField( + # max_length=100, + # blank=True, null=True, + # verbose_name=_('Field coordinator name') + #) + coordinator = models.ForeignKey( + Coordinator, blank=True, null=True, - verbose_name=_('Field coordinator name') + verbose_name=_('coordinator'), + related_name='+', ) + is_2nd_shift = models.BooleanField( blank=True, default=False, @@ -131,7 +161,47 @@ class School(models.Model): verbose_name=_('School location'), related_name='+', ) - + is_closed = models.BooleanField( + default=False, + blank=True, + verbose_name=_('is closed') + ) + bank_Base1 = models.ForeignKey( + Bank, + blank=True, null=True, + related_name='+', + verbose_name=_('Bank'), + ) + branch_base1 = models.CharField( + max_length=60, + blank=True, + null=True, + verbose_name=_('Branch') + ) + iban_base1 = models.CharField( + max_length=100, + blank=True, + null=True, + verbose_name=_('IBAN LL') + ) + bank_Base2 = models.ForeignKey( + Bank, + blank=True, null=True, + related_name='+', + verbose_name=_('Bank'), + ) + branch_base2 = models.CharField( + max_length=60, + blank=True, + null=True, + verbose_name=_('Branch') + ) + iban_base2 = models.CharField( + max_length=100, + blank=True, + null=True, + verbose_name=_('IBAN $') + ) class Meta: ordering = ['number'] @@ -187,7 +257,7 @@ def location_parent_name(self): def total_registered(self): from student_registration.enrollments.models import Enrollment return Enrollment.objects.filter( - education_year__current_year=True, + education_year__current_year=True, disabled=False, school_id=self.id ).count() @@ -195,7 +265,7 @@ def total_registered(self): def total_registered_2ndshift(self): from student_registration.enrollments.models import Enrollment return Enrollment.objects.filter( - education_year__current_year=True, + education_year__current_year=True, moved=False, dropout_status=False, school_id=self.id ).count() @@ -264,6 +334,25 @@ def __unicode__(self): class EducationLevel(models.Model): name = models.CharField(max_length=45, unique=True) note = models.IntegerField(blank=True, null=True) + with_math = models.BooleanField(blank=True, default=False) + with_science = models.BooleanField(blank=True, default=False) + with_arabic = models.BooleanField(blank=True, default=False) + with_language = models.BooleanField(blank=True, default=False) + coefficient_score = models.FloatField(blank=True, null=True) + new_calculation = models.BooleanField(blank=True, default=False) + + @property + def sum_subjects(self): + sum_subject = 0 + if self.with_math: + sum_subject += 1 + if self.with_science: + sum_subject += 1 + if self.with_arabic: + sum_subject += 1 + if self.with_language: + sum_subject += 1 + return sum_subject class Meta: ordering = ['id'] @@ -296,6 +385,13 @@ def __unicode__(self): class ClassRoom(models.Model): name = models.CharField(max_length=45, unique=True) + classroom_type = models.CharField( + blank=True, null=True, max_length=2, + choices=Choices( + ('PV', _('Private School')), + ('PU', _('Public School')), + ), + ) class Meta: ordering = ['id'] @@ -308,6 +404,26 @@ def __unicode__(self): class CLMRound(models.Model): name = models.CharField(max_length=45, unique=True) + current_round_bln = models.BooleanField(blank=True, default=False) + current_round_abln = models.BooleanField(blank=True, default=False) + current_round_cbece = models.BooleanField(blank=True, default=False) + + start_date_bln = models.DateField(blank=True, null=True) + end_date_bln = models.DateField(blank=True, null=True) + start_date_bln_edit = models.DateField(blank=True, null=True) + end_date_bln_edit = models.DateField(blank=True, null=True) + + start_date_abln = models.DateField(blank=True, null=True) + end_date_abln = models.DateField(blank=True, null=True) + start_date_abln_edit = models.DateField(blank=True, null=True) + end_date_abln_edit = models.DateField(blank=True, null=True) + + start_date_cbece = models.DateField(blank=True, null=True) + end_date_cbece = models.DateField(blank=True, null=True) + start_date_cbece_edit = models.DateField(blank=True, null=True) + end_date_cbece_edit = models.DateField(blank=True, null=True) + + class Meta: ordering = ['name'] verbose_name = "CLM Round" @@ -388,6 +504,10 @@ def __unicode__(self): class ALPAssignmentMatrix(models.Model): + MATRIX_TYPE =( + ('O', _('Old')), + ('N', _('New')), + ) level = models.ForeignKey( EducationLevel, blank=True, null=True, @@ -401,6 +521,7 @@ class ALPAssignmentMatrix(models.Model): range_start = models.FloatField(blank=True, null=True) range_end = models.FloatField(blank=True, null=True) + matrix_type = models.CharField(blank=True, null=True, max_length=1, choices=MATRIX_TYPE) @property def range(self): @@ -447,3 +568,1973 @@ class Meta: def __unicode__(self): return self.name + + +class Setup(models.Model): + staff_seq = models.IntegerField( + blank=True, null=True) + + +class class_section(TimeStampedModel): + + school = models.ForeignKey( + School, + verbose_name=_('school'), + related_name='+', + ) + classroom = models.ForeignKey( + ClassRoom, + blank=True, null=True, + verbose_name=_('class'), + related_name='+', + ) + section = models.ForeignKey( + Section, + blank=True, null=True, + verbose_name=_('section'), + related_name='+', + ) + closed_date = models.DateField( + blank=True, + null=True, + verbose_name=_('Closed Date') + ) + is_closed = models.BooleanField( + blank=True, + default=False, + verbose_name=_('is closed') + ) + school_type = models.CharField( + max_length=15, + blank=True, null=True, + verbose_name=_('school type') + ) + education_year = models.ForeignKey( + EducationYear, + blank=True, null=True, + related_name='+', + verbose_name=_('Education year') + ) + + +class Evaluation(TimeStampedModel): + school = models.ForeignKey( + School, + blank=False, null=True, + related_name='+', + verbose_name=_('School') + ) + education_year = models.ForeignKey( + EducationYear, + blank=True, null=True, + related_name='+', + verbose_name=_('Education year') + ) + owner = models.ForeignKey( + settings.AUTH_USER_MODEL, + blank=False, null=True, + related_name='+', + verbose_name=_('Created by') + ) + total_teaching_days = models.IntegerField( + blank=True, null=True, + verbose_name=_('Teaching days completed since the beginning of the school year till the end of february'), + default=0, + choices=((x, x) for x in range(0, 365)) + ) + total_teaching_days_tillnow = models.IntegerField( + blank=True, null=True, + verbose_name=_('Teaching days from the beginning of march till now'), + default=0, + choices=((x, x) for x in range(0, 365)) + ) + + implemented_de = models.CharField( + blank=True, default='no', + max_length=3, + choices=Choices( + ('yes', _('Yes')), + ('no', _('No')), + ), + verbose_name=_('Have you implemented distance education ?') + ) + reasons_no_de = models.TextField( + blank=True, + null=True, + verbose_name=_('Determine the reasons') + ) + challenges_de = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges that you faced during distance education') + ) + steps_de = models.TextField( + blank=True, + null=True, + verbose_name=_('What are the steps followed in distance education') + ) + evaluate_steps_de = models.TextField( + blank=True, + null=True, + verbose_name=_('Evaluate the steps followed in distance education') + ) + + implemented_de_2 = models.CharField( + blank=True, default='no', + max_length=3, + choices=Choices( + ('yes', _('Yes')), + ('no', _('No')), + ), + verbose_name=_('Have you implemented distance education ?') + ) + reasons_no_de_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('Determine the reasons') + ) + challenges_de_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges that you faced during distance education') + ) + steps_de_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('What are the steps followed in distance education') + ) + evaluate_steps_de_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('Evaluate the steps followed in distance education') + ) + + implemented_de_3 = models.CharField( + blank=True, default='no', + max_length=3, + choices=Choices( + ('yes', _('Yes')), + ('no', _('No')), + ), + verbose_name=_('Have you implemented distance education ?') + ) + reasons_no_de_3 = models.TextField( + blank=True, + null=True, + verbose_name=_('Determine the reasons') + ) + challenges_de_3 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges that you faced during distance education') + ) + steps_de_3 = models.TextField( + blank=True, + null=True, + verbose_name=_('What are the steps followed in distance education') + ) + evaluate_steps_de_3 = models.TextField( + blank=True, + null=True, + verbose_name=_('Evaluate the steps followed in distance education') + ) + other_notes_de = models.TextField( + blank=True, + null=True, + verbose_name=_('Comments') + ) + + c2_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c2_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + + c3_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c3_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c4_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c5_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c1_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c6_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + cprep_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_his_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_his_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_his_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_phy_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_phy_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_phy_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_che_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_che_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c7_che_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_his_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_his_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_his_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_phy_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_phy_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_phy_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_che_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_che_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c8_che_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_eng_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_eng_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_eng_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_fr_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_fr_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_fr_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_math_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_math_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_math_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_sc_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_sc_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_sc_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_ara_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_ara_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_ara_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_civic_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_civic_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_civic_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_geo_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_geo_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_geo_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_his_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_his_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_his_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_phy_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_phy_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_phy_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_che_completed = models.IntegerField( + blank=True, null=True, + verbose_name=_('The number of lessons completed till february'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_che_completed_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons accomplished through distance education in march'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_che_remaining_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of lessons remaining'), + default=0, + choices=((x, x) for x in range(0, 100)) + ) + c9_total_std = models.IntegerField( + blank=True, null=True, + verbose_name=_('Total of students'), + default=0, + choices=((x, x) for x in range(0, 50)) + ) + c9_total_std_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Total of students they follow distance education'), + default=0, + choices=((x, x) for x in range(0, 50)) + ) + + implemented_de_9 = models.CharField( + blank=True, default='no', + max_length=3, + choices=Choices( + ('yes', _('Yes')), + ('no', _('No')), + ), + verbose_name=_('Have you implemented distance education ?') + ) + reasons_no_de_9 = models.TextField( + blank=True, + null=True, + verbose_name=_('Determine the reasons') + ) + challenges_de_9 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges that you faced during distance education') + ) + steps_de_9 = models.TextField( + blank=True, + null=True, + verbose_name=_('What are the steps followed in distance education') + ) + evaluate_steps_de_9 = models.TextField( + blank=True, + null=True, + verbose_name=_('Evaluate the steps followed in distance education') + ) + + implemented_de_prep = models.CharField( + blank=True, default='no', + max_length=3, + choices=Choices( + ('yes', _('Yes')), + ('no', _('No')), + ), + verbose_name=_('Have you implemented distance education ?') + ) + reasons_no_de_prep = models.TextField( + blank=True, + null=True, + verbose_name=_('Determine the reasons') + ) + challenges_de_prep = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges that you faced during distance education') + ) + steps_de_prep = models.TextField( + blank=True, + null=True, + verbose_name=_('What are the steps followed in distance education') + ) + evaluate_steps_de_prep = models.TextField( + blank=True, + null=True, + verbose_name=_('Evaluate the steps followed in distance education') + ) + + c9_total_teachers = models.IntegerField( + blank=True, null=True, + verbose_name=_('Total of teachers'), + default=0, + choices=((x, x) for x in range(0, 50)) + ) + c9_total_teachers_de = models.IntegerField( + blank=True, null=True, + verbose_name=_('Number of teachers who have committed to distance education'), + default=0, + choices=((x, x) for x in range(0, 50)) + ) + + def __unicode__(self): + return self.school.name + + +class Schl_Subject(models.Model): + name = models.CharField( + max_length=100, + unique=True, + verbose_name=_('Subject') + ) + class Meta: + verbose_name_plural = "Subjects" + + def __unicode__(self): + return self.name + + +class Schl_Survey(TimeStampedModel): + school = models.ForeignKey( + School, + blank=True, null=True, + verbose_name=_('School'), + related_name='+', + ) + classroom = models.ForeignKey( + ClassRoom, + blank=True, null=True, + verbose_name=_('Class'), + related_name='+', + ) + schl_subject = models.ForeignKey( + Schl_Subject, + blank=True, null=True, + verbose_name=_('Course'), + related_name='+', + ) + teachingdays_tillfeb = models.IntegerField( + blank=True, null=True, + ) + teachingdays_frommars = models.IntegerField( + blank=True, null=True, + ) + teachingdays_remaining = models.IntegerField( + blank=True, null=True, + ) + + +class Schl_Survey_Class(TimeStampedModel): + school = models.ForeignKey( + School, + blank=True, null=True, + verbose_name=_('School'), + related_name='+', + ) + classroom = models.ForeignKey( + ClassRoom, + blank=True, null=True, + verbose_name=_('Class'), + related_name='+', + ) + de_implemented = models.BooleanField( + blank=True, + default=False, + verbose_name=_('Distance education implemented ?') + ) + de_usedmethod_1 = models.TextField( + blank=True, + null=True, + verbose_name=_('The methods used during the distance education plan') + ) + de_challenge_1 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges during the distance education plan') + ) + de_negativenotes_1 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_positivenotes_1 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_interactedstudents_1 = models.TextField( + blank=True, + null=True, + verbose_name=_('The number of interacted students ') + ) + + de_usedmethod_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('The methods used during the distance education plan') + ) + de_challenge_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges during the distance education plan') + ) + de_negativenotes_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_positivenotes_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_interactedstudents_2 = models.TextField( + blank=True, + null=True, + verbose_name=_('The number of interacted students ') + ) + + de_usedmethod_3 = models.TextField( + blank=True, + null=True, + verbose_name=_('The methods used during the distance education plan') + ) + de_challenge_3 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges during the distance education plan') + ) + de_negativenotes_3 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_positivenotes_3 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_interactedstudents_3 = models.TextField( + blank=True, + null=True, + verbose_name=_('The number of interacted students ') + ) + + de_usedmethod_4 = models.TextField( + blank=True, + null=True, + verbose_name=_('The methods used during the distance education plan') + ) + de_challenge_4 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges during the distance education plan') + ) + de_negativenotes_4 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_positivenotes_4 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_interactedstudents_4 = models.TextField( + blank=True, + null=True, + verbose_name=_('The number of interacted students ') + ) + + de_usedmethod_5 = models.TextField( + blank=True, + null=True, + verbose_name=_('The methods used during the distance education plan') + ) + de_challenge_5 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges during the distance education plan') + ) + de_negativenotes_5 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_positivenotes_5 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_interactedstudents_5 = models.TextField( + blank=True, + null=True, + verbose_name=_('The number of interacted students ') + ) + + de_usedmethod_6 = models.TextField( + blank=True, + null=True, + verbose_name=_('The methods used during the distance education plan') + ) + de_challenge_6 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges during the distance education plan') + ) + de_negativenotes_6 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_positivenotes_6 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_interactedstudents_6 = models.TextField( + blank=True, + null=True, + verbose_name=_('The number of interacted students ') + ) + + de_usedmethod_7 = models.TextField( + blank=True, + null=True, + verbose_name=_('The methods used during the distance education plan') + ) + de_challenge_7 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges during the distance education plan') + ) + de_negativenotes_7 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_positivenotes_7 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_interactedstudents_7 = models.TextField( + blank=True, + null=True, + verbose_name=_('The number of interacted students ') + ) + + de_usedmethod_8 = models.TextField( + blank=True, + null=True, + verbose_name=_('The methods used during the distance education plan') + ) + de_challenge_8 = models.TextField( + blank=True, + null=True, + verbose_name=_('The challenges during the distance education plan') + ) + de_negativenotes_8 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_positivenotes_8 = models.TextField( + blank=True, + null=True, + verbose_name=_('The negative notes ') + ) + de_interactedstudents_8 = models.TextField( + blank=True, + null=True, + verbose_name=_('The number of interacted students ') + ) + nbstudents = models.IntegerField( + blank=True, null=True, + ) + + de_nbstudents = models.IntegerField( + blank=True, null=True, + ) + nbteachers = models.IntegerField( + blank=True, null=True, + ) + de_nbteachers = models.IntegerField( + blank=True, null=True, + ) diff --git a/student_registration/schools/urls.py b/student_registration/schools/urls.py index 890d40bd9..31425f0f6 100644 --- a/student_registration/schools/urls.py +++ b/student_registration/schools/urls.py @@ -21,11 +21,64 @@ view=views.PublicDocumentView.as_view(), name='documents' ), - url( regex=r'^autocomplete/$', view=views.AutocompleteView.as_view(), name='autocomplete' ), - + url( + regex=r'^evaluation/$', + view=views.EvaluationView.as_view(), + name='evaluation' + ), + url( + regex=r'^evaluation/update_classroom/(?P[\w.@+-]+)/$', + view=views.Update_Class.as_view(), + name='update_classroom' + ), + url( + regex=r'^evaluation/update_classroom_c1/(?P[\w.@+-]+)/$', + view=views.Update_Class_c1.as_view(), + name='update_classroom_c1' + ), + url( + regex=r'^evaluation/update_classroom_c3/(?P[\w.@+-]+)/$', + view=views.Update_Class_C3.as_view(), + name='update_classroom_c3' + ), + url( + regex=r'^evaluation/update_classroom_c4/(?P[\w.@+-]+)/$', + view=views.Update_Class_c4.as_view(), + name='update_classroom_c4' + ), + url( + regex=r'^evaluation/update_classroom_c5/(?P[\w.@+-]+)/$', + view=views.Update_Class_c5.as_view(), + name='update_classroom_c5' + ), + url( + regex=r'^evaluation/update_classroom_c6/(?P[\w.@+-]+)/$', + view=views.Update_Class_c6.as_view(), + name='update_classroom_c6' + ), + url( + regex=r'^evaluation/update_classroom_c7/(?P[\w.@+-]+)/$', + view=views.Update_Class_c7.as_view(), + name='update_classroom_c7' + ), + url( + regex=r'^evaluation/update_classroom_c8/(?P[\w.@+-]+)/$', + view=views.Update_Class_c8.as_view(), + name='update_classroom_c8' + ), + url( + regex=r'^evaluation/update_classroom_c9/(?P[\w.@+-]+)/$', + view=views.Update_Class_c9.as_view(), + name='update_classroom_c9' + ), + url( + regex=r'^evaluation/update_classroom_cprep/(?P[\w.@+-]+)/$', + view=views.Update_Class_cprep.as_view(), + name='update_classroom_cprep' + ), ] diff --git a/student_registration/schools/views.py b/student_registration/schools/views.py index 8527e0245..e033650f1 100644 --- a/student_registration/schools/views.py +++ b/student_registration/schools/views.py @@ -2,21 +2,23 @@ from __future__ import absolute_import, unicode_literals from django.db.models import Q -from django.views.generic import DetailView, ListView, RedirectView, UpdateView, FormView, TemplateView +from django.views.generic import DetailView, ListView, RedirectView, CreateView, FormView, TemplateView, UpdateView from django.contrib.auth.mixins import LoginRequiredMixin - +from django.urls import reverse_lazy from dal import autocomplete from rest_framework import viewsets, mixins, permissions from braces.views import GroupRequiredMixin - +from django.contrib import admin from student_registration.backends.models import Notification from student_registration.users.utils import force_default_language from .models import ( + EducationYear, School, ClassRoom, Section, PublicDocument, PartnerOrganization, + Evaluation, ) from .serializers import ( @@ -24,7 +26,13 @@ ClassRoomSerializer, SectionSerializer, ) -from .forms import ProfileForm, PartnerForm +from .forms import ProfileForm, PartnerForm, EvaluationForm,Classroom_Form, Classroom_Form_c1, Classroom_Form_c3,\ + Classroom_Form_c4, Classroom_Form_c5, Classroom_Form_c6, Classroom_Form_c7, Classroom_Form_c8, \ + Classroom_Form_c9, Classroom_Form_cprep +from django.forms import modelformset_factory, formset_factory, inlineformset_factory, forms +from django.shortcuts import render, redirect +from django.db import transaction +from django.contrib import messages class SchoolViewSet(mixins.ListModelMixin, @@ -158,3 +166,298 @@ def get_queryset(self): ) return qs + + +class EvaluationView(FormView): + template_name = 'schools/evaluation.html' + form_class = EvaluationForm + success_url = '/schools/evaluation/' + + def get_form(self, form_class=None): + education_year = EducationYear.objects.get(current_year=True) + if self.request: + if self.request.user: + if self.request.user.school_id: + evaluation = Evaluation.objects.filter(school_id=self.request.user.school_id, education_year=education_year) + instance = Evaluation.objects.get(id=evaluation) + + if self.request.method == "POST": + return EvaluationForm(self.request.POST, instance=instance) + else: + return EvaluationForm(instance=instance) + + def form_valid(self, form): + education_year = EducationYear.objects.get(current_year=True) + instance = Evaluation.objects.get(school_id=self.request.user.school_id, education_year=education_year) + form.save(request=self.request, instance=instance) + return super(EvaluationView, self).form_valid(form) + + +class Update_Class(UpdateView): + model = Evaluation + form_class = Classroom_Form + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form(self.request.POST, instance=instance) + else: + return Classroom_Form(instance=instance) + + +class Update_Class_c1(UpdateView): + model = Evaluation + form_class = Classroom_Form_c1 + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class_c1, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form_c1(self.request.POST, instance=instance) + else: + return Classroom_Form_c1(instance=instance) + + +class Update_Class_C3(UpdateView): + model = Evaluation + form_class = Classroom_Form_c3 + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class_C3, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form_c3(self.request.POST, instance=instance) + else: + return Classroom_Form_c3(instance=instance) + + +class Update_Class_c4(UpdateView): + model = Evaluation + form_class = Classroom_Form_c4 + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class_c4, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form_c4(self.request.POST, instance=instance) + else: + return Classroom_Form_c4(instance=instance) + + +class Update_Class_c5(UpdateView): + model = Evaluation + form_class = Classroom_Form_c5 + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class_c5, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form_c5(self.request.POST, instance=instance) + else: + return Classroom_Form_c5(instance=instance) + + +class Update_Class_c6(UpdateView): + model = Evaluation + form_class = Classroom_Form_c6 + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class_c6, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form_c6(self.request.POST, instance=instance) + else: + return Classroom_Form_c6(instance=instance) + + +class Update_Class_c7(UpdateView): + model = Evaluation + form_class = Classroom_Form_c7 + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class_c7, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form_c7(self.request.POST, instance=instance) + else: + return Classroom_Form_c7(instance=instance) + + +class Update_Class_c8(UpdateView): + model = Evaluation + form_class = Classroom_Form_c8 + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class_c8, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form_c8(self.request.POST, instance=instance) + else: + return Classroom_Form_c8(instance=instance) + + +class Update_Class_c9(UpdateView): + model = Evaluation + form_class = Classroom_Form_c9 + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class_c9, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form_c9(self.request.POST, instance=instance) + else: + return Classroom_Form_c9(instance=instance) + + +class Update_Class_cprep(UpdateView): + model = Evaluation + form_class = Classroom_Form_cprep + + template_name = 'schools/classform.html' + success_url = '/schools/evaluation/' + context_object_name = 'school_class' + + def get_success_url(self): + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(Update_Class_cprep, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Evaluation.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + instance.save() + return Classroom_Form_cprep(self.request.POST, instance=instance) + else: + return Classroom_Form_cprep(instance=instance) diff --git a/student_registration/staffenroll/__init__.py b/student_registration/staffenroll/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/student_registration/staffenroll/admin.py b/student_registration/staffenroll/admin.py new file mode 100644 index 000000000..d652d9c11 --- /dev/null +++ b/student_registration/staffenroll/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin +from .models import Jobs, Subjects, Worklist +# Register your models here. + +admin.site.register(Jobs) +admin.site.register(Subjects) +admin.site.register(Worklist) diff --git a/student_registration/staffenroll/apps.py b/student_registration/staffenroll/apps.py new file mode 100644 index 000000000..9fff0fa25 --- /dev/null +++ b/student_registration/staffenroll/apps.py @@ -0,0 +1,7 @@ +from __future__ import unicode_literals + +from django.apps import AppConfig + + +class StaffenrollConfig(AppConfig): + name = 'staffenroll' diff --git a/student_registration/staffenroll/filters.py b/student_registration/staffenroll/filters.py new file mode 100644 index 000000000..5b834d626 --- /dev/null +++ b/student_registration/staffenroll/filters.py @@ -0,0 +1,29 @@ +from django.utils.translation import ugettext as _ + +from django_filters import FilterSet, ModelChoiceFilter + +from student_registration.schools.models import EducationYear, Section, ClassRoom +from student_registration.students.models import Nationality +from .models import StaffEnroll + + +class CommonFilter(FilterSet): + section = ModelChoiceFilter(queryset=Section.objects.all(), empty_label=_('Section')) + classroom = ModelChoiceFilter(queryset=ClassRoom.objects.all(), empty_label=_('Class')) + + +class StaffEnrollFilter(CommonFilter): + class Meta: + model = StaffEnroll + fields = { + 'classroom': ['exact'], + 'section': ['exact'], + # 'student__first_name': ['contains'], + #'student__father_name': ['contains'], + #'student__last_name': ['contains'], + #'student__mother_fullname': ['contains'], + #'student__id_number': ['contains'], + #'student__nationality': ['exact'], + } + + diff --git a/student_registration/staffenroll/forms.py b/student_registration/staffenroll/forms.py new file mode 100644 index 000000000..e69de29bb diff --git a/student_registration/staffenroll/migrations/0001_initial.py b/student_registration/staffenroll/migrations/0001_initial.py new file mode 100644 index 000000000..2a049a73a --- /dev/null +++ b/student_registration/staffenroll/migrations/0001_initial.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-02 12:48 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('students', '0044_student_std_phone'), + ('schools', '0039_auto_20190619_1028'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Jobs', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('hourrate', models.IntegerField(blank=True, null=True, verbose_name='Hour Rate')), + ], + options={ + 'ordering': ['id'], + }, + ), + migrations.CreateModel( + name='StaffEnroll', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('joineddate', models.CharField(blank=True, choices=[('2000/2001', '2000/2001'), ('2001/2002', '2001/2002'), ('2002/2003', '2002/2003'), ('2003/2004', '2003/2004'), ('2004/2005', '2004/2005'), ('2005/2006', '2005/2006'), ('2006/2007', '2006/2007'), ('2007/2008', '2007/2008'), ('2008/2009', '2008/2009'), ('2009/2010', '2009/2010'), ('2010/2011', '2010/2011'), ('2011/2012', '2011/2012'), ('2012/2013', '2012/2013'), ('2013/2014', '2013/2014'), ('2014/2015', '2014/2015'), ('2015/2016', '2015/2016'), ('2016/2017', '2016/2017'), ('2017/2018', '2017/2018'), ('2018/2019', '2018/2019'), ('2019/2020', '2019/2020'), ('2020/2021', '2020/2021'), ('2021/2022', '2021/2022'), ('2022/2023', '2022/2023'), ('2023/2024', '2023/2024'), ('2024/2025', '2024/2025'), ('2025/2026', '2025/2026'), ('2026/2027', '2026/2027'), ('2027/2028', '2027/2028'), ('2028/2029', '2028/2029'), ('2029/2030', '2029/2030'), ('2030/2031', '2030/2031'), ('2031/2032', '2031/2032'), ('2032/2033', '2032/2033'), ('2033/2034', '2033/2034'), ('2034/2035', '2034/2035'), ('2035/2036', '2035/2036'), ('2036/2037', '2036/2037'), ('2037/2038', '2037/2038'), ('2038/2039', '2038/2039'), ('2039/2040', '2039/2040'), ('2040/2041', '2040/2041'), ('2041/2042', '2041/2042'), ('2042/2043', '2042/2043'), ('2043/2044', '2043/2044'), ('2044/2045', '2044/2045'), ('2045/2046', '2045/2046'), ('2046/2047', '2046/2047'), ('2047/2048', '2047/2048'), ('2048/2049', '2048/2049'), ('na', 'N/A')], max_length=10, null=True)), + ('first_education_year', models.CharField(blank=True, choices=[('2000/2001', '2000/2001'), ('2001/2002', '2001/2002'), ('2002/2003', '2002/2003'), ('2003/2004', '2003/2004'), ('2004/2005', '2004/2005'), ('2005/2006', '2005/2006'), ('2006/2007', '2006/2007'), ('2007/2008', '2007/2008'), ('2008/2009', '2008/2009'), ('2009/2010', '2009/2010'), ('2010/2011', '2010/2011'), ('2011/2012', '2011/2012'), ('2012/2013', '2012/2013'), ('2013/2014', '2013/2014'), ('2014/2015', '2014/2015'), ('2015/2016', '2015/2016'), ('2016/2017', '2016/2017'), ('2017/2018', '2017/2018'), ('2018/2019', '2018/2019'), ('2019/2020', '2019/2020'), ('2020/2021', '2020/2021'), ('2021/2022', '2021/2022'), ('2022/2023', '2022/2023'), ('2023/2024', '2023/2024'), ('2024/2025', '2024/2025'), ('2025/2026', '2025/2026'), ('2026/2027', '2026/2027'), ('2027/2028', '2027/2028'), ('2028/2029', '2028/2029'), ('2029/2030', '2029/2030'), ('2030/2031', '2030/2031'), ('2031/2032', '2031/2032'), ('2032/2033', '2032/2033'), ('2033/2034', '2033/2034'), ('2034/2035', '2034/2035'), ('2035/2036', '2035/2036'), ('2036/2037', '2036/2037'), ('2037/2038', '2037/2038'), ('2038/2039', '2038/2039'), ('2039/2040', '2039/2040'), ('2040/2041', '2040/2041'), ('2041/2042', '2041/2042'), ('2042/2043', '2042/2043'), ('2043/2044', '2043/2044'), ('2044/2045', '2044/2045'), ('2045/2046', '2045/2046'), ('2046/2047', '2046/2047'), ('2047/2048', '2047/2048'), ('2048/2049', '2048/2049'), ('na', 'N/A')], max_length=10, null=True, verbose_name=' \u0622\u062e\u0631 \u0633\u0646\u0629 \u062f\u0631\u0627\u0633\u064a\u0629')), + ('deleted', models.BooleanField(default=False, verbose_name='\u062d\u0630\u0641')), + ('weeklyhours', models.IntegerField(default=0, verbose_name='Weekly Nb of hours')), + ('classroom', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.ClassRoom', verbose_name='\u0627\u0644\u0635\u0641 \u0627\u0644\u062d\u0627\u0644\u064a')), + ('education_year', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationYear', verbose_name='\u0627\u0644\u0633\u0646\u0629 \u0627\u0644\u062f\u0631\u0627\u0633\u064a\u0629')), + ('job', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffenroll.Jobs', verbose_name='Jobs')), + ('owner', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='\u0627\u0646\u0634\u0623 \u0645\u0646 \u0642\u0628\u0644')), + ('school', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='school', to='schools.School', verbose_name='\u0627\u0644\u0645\u062f\u0631\u0633\u0629')), + ('section', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.Section', verbose_name='\u0627\u0644\u0634\u0639\u0628\u0629 \u0627\u0644\u062d\u0627\u0644\u064a\u0629')), + ('student', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='staff_enrollment', to='students.Student')), + ], + options={ + 'ordering': ['-student__first_name'], + }, + ), + migrations.CreateModel( + name='Subjects', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=45, unique=True)), + ], + options={ + 'ordering': ['id'], + }, + ), + migrations.AddField( + model_name='staffenroll', + name='subject', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffenroll.Subjects', verbose_name='Subjects'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0002_jobs_name.py b/student_registration/staffenroll/migrations/0002_jobs_name.py new file mode 100644 index 000000000..641c0c157 --- /dev/null +++ b/student_registration/staffenroll/migrations/0002_jobs_name.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-02 13:34 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='jobs', + name='name', + field=models.CharField(default=0, max_length=45, unique=True, verbose_name='Jobs'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0003_auto_20190902_1642.py b/student_registration/staffenroll/migrations/0003_auto_20190902_1642.py new file mode 100644 index 000000000..21a009627 --- /dev/null +++ b/student_registration/staffenroll/migrations/0003_auto_20190902_1642.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-02 13:42 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0002_jobs_name'), + ] + + operations = [ + migrations.AddField( + model_name='staffenroll', + name='current_hourrate', + field=models.IntegerField(blank=True, null=True, verbose_name='Hour Rate'), + ), + migrations.AlterField( + model_name='jobs', + name='name', + field=models.CharField(default=' ', max_length=45, unique=True, verbose_name='Job description'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0004_auto_20190928_0838.py b/student_registration/staffenroll/migrations/0004_auto_20190928_0838.py new file mode 100644 index 000000000..94a3e9df3 --- /dev/null +++ b/student_registration/staffenroll/migrations/0004_auto_20190928_0838.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-28 05:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0003_auto_20190902_1642'), + ] + + operations = [ + migrations.AlterModelOptions( + name='jobs', + options={'ordering': ['id'], 'verbose_name_plural': 'Jobs'}, + ), + migrations.AlterModelOptions( + name='subjects', + options={'ordering': ['id'], 'verbose_name_plural': 'Subjects'}, + ), + migrations.AlterField( + model_name='jobs', + name='hourrate', + field=models.IntegerField(blank=True, null=True, verbose_name='\u0642\u064a\u0645\u0629 \u0627\u0644\u062d\u0635\u0629'), + ), + migrations.AlterField( + model_name='jobs', + name='name', + field=models.CharField(default=' ', max_length=45, unique=True, verbose_name='\u0648\u0635\u0641 \u0627\u0644\u0645\u0634\u0643\u0644\u0629'), + ), + migrations.AlterField( + model_name='staffenroll', + name='current_hourrate', + field=models.IntegerField(blank=True, null=True, verbose_name='\u0642\u064a\u0645\u0629 \u0627\u0644\u062d\u0635\u0629'), + ), + migrations.AlterField( + model_name='staffenroll', + name='job', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffenroll.Jobs', verbose_name='\u0627\u0644\u0648\u0638\u064a\u0641\u0629'), + ), + migrations.AlterField( + model_name='staffenroll', + name='subject', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffenroll.Subjects', verbose_name='\u0627\u0644\u0645\u0627\u062f\u0629'), + ), + migrations.AlterField( + model_name='staffenroll', + name='weeklyhours', + field=models.IntegerField(default=0, verbose_name='\u0639\u062f\u062f \u0627\u0644\u0633\u0627\u0639\u0627\u062a \u0641\u064a \u0627\u0644\u0623\u0633\u0628\u0648\u0639'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0005_auto_20191008_1151.py b/student_registration/staffenroll/migrations/0005_auto_20191008_1151.py new file mode 100644 index 000000000..da03799db --- /dev/null +++ b/student_registration/staffenroll/migrations/0005_auto_20191008_1151.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-10-08 08:51 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0004_auto_20190928_0838'), + ] + + operations = [ + migrations.AlterField( + model_name='jobs', + name='hourrate', + field=models.IntegerField(blank=True, null=True, verbose_name='\u0627\u0644\u0642\u064a\u0645\u0629'), + ), + migrations.AlterField( + model_name='staffenroll', + name='current_hourrate', + field=models.IntegerField(blank=True, null=True, verbose_name='\u0627\u0644\u0642\u064a\u0645\u0629'), + ), + migrations.AlterField( + model_name='staffenroll', + name='job', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffenroll.Jobs', verbose_name='Jobs'), + ), + migrations.AlterField( + model_name='staffenroll', + name='subject', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffenroll.Subjects', verbose_name='\u0627\u0644\u0645\u0648\u0627\u062f'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0006_auto_20191114_1123.py b/student_registration/staffenroll/migrations/0006_auto_20191114_1123.py new file mode 100644 index 000000000..0b3132da2 --- /dev/null +++ b/student_registration/staffenroll/migrations/0006_auto_20191114_1123.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-14 09:23 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0009_auto_20191008_1151'), + ('staffenroll', '0005_auto_20191008_1151'), + ] + + operations = [ + migrations.RemoveField( + model_name='staffenroll', + name='student', + ), + migrations.AddField( + model_name='staffenroll', + name='staff', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='staff_enrollment', to='staffs.Staffs'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0007_jobs_maxhoursperweek.py b/student_registration/staffenroll/migrations/0007_jobs_maxhoursperweek.py new file mode 100644 index 000000000..22780c73e --- /dev/null +++ b/student_registration/staffenroll/migrations/0007_jobs_maxhoursperweek.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-08 07:27 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0006_auto_20191114_1123'), + ] + + operations = [ + migrations.AddField( + model_name='jobs', + name='maxhoursperweek', + field=models.IntegerField(blank=True, null=True, verbose_name='Max.Hours per week'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0008_auto_20191223_1333.py b/student_registration/staffenroll/migrations/0008_auto_20191223_1333.py new file mode 100644 index 000000000..bf89f558d --- /dev/null +++ b/student_registration/staffenroll/migrations/0008_auto_20191223_1333.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-23 11:33 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0007_jobs_maxhoursperweek'), + ] + + operations = [ + migrations.RemoveField( + model_name='staffenroll', + name='first_education_year', + ), + migrations.AddField( + model_name='staffenroll', + name='school_ispublic', + field=models.BooleanField(default=False, verbose_name='is public'), + ), + migrations.AddField( + model_name='staffenroll', + name='shift', + field=models.CharField(blank=True, choices=[('D', 'Day'), ('N', 'Night')], max_length=1, null=True), + ), + migrations.AddField( + model_name='staffenroll', + name='work', + field=models.CharField(blank=True, max_length=150, verbose_name='main work'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0009_staffenroll_school_ismain.py b/student_registration/staffenroll/migrations/0009_staffenroll_school_ismain.py new file mode 100644 index 000000000..9d8b31205 --- /dev/null +++ b/student_registration/staffenroll/migrations/0009_staffenroll_school_ismain.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-25 19:05 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0008_auto_20191223_1333'), + ] + + operations = [ + migrations.AddField( + model_name='staffenroll', + name='school_ismain', + field=models.BooleanField(default=True, verbose_name='is public'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0010_jobs_salarytype.py b/student_registration/staffenroll/migrations/0010_jobs_salarytype.py new file mode 100644 index 000000000..40f8ad784 --- /dev/null +++ b/student_registration/staffenroll/migrations/0010_jobs_salarytype.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-05 21:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0009_staffenroll_school_ismain'), + ] + + operations = [ + migrations.AddField( + model_name='jobs', + name='salarytype', + field=models.CharField(blank=True, choices=[('H', 'Hourly'), ('D', 'Daily'), ('W', 'Weekly'), ('M', 'Monthly')], max_length=1, null=True), + ), + ] diff --git a/student_registration/staffenroll/migrations/0011_auto_20200106_0915.py b/student_registration/staffenroll/migrations/0011_auto_20200106_0915.py new file mode 100644 index 000000000..2012d000c --- /dev/null +++ b/student_registration/staffenroll/migrations/0011_auto_20200106_0915.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-06 07:15 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0010_jobs_salarytype'), + ] + + operations = [ + migrations.AddField( + model_name='jobs', + name='with_date_interval', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='staffenroll', + name='ending_work', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='staffenroll', + name='starting_work', + field=models.DateField(blank=True, null=True), + ), + ] diff --git a/student_registration/staffenroll/migrations/0012_auto_20200106_1733.py b/student_registration/staffenroll/migrations/0012_auto_20200106_1733.py new file mode 100644 index 000000000..04dcc85c4 --- /dev/null +++ b/student_registration/staffenroll/migrations/0012_auto_20200106_1733.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-06 15:33 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0046_auto_20200106_0051'), + ('staffs', '0016_auto_20191227_0102'), + ('staffenroll', '0011_auto_20200106_0915'), + ] + + operations = [ + migrations.CreateModel( + name='staffattend', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('attenddate', models.DateField()), + ('attendhours', models.IntegerField()), + ('isattend', models.BooleanField(default=False)), + ('attendremarks', models.CharField(blank=True, max_length=200, null=True)), + ('education_year', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationYear', verbose_name='\u0627\u0644\u0633\u0646\u0629 \u0627\u0644\u062f\u0631\u0627\u0633\u064a\u0629')), + ], + options={ + 'abstract': False, + }, + ), + migrations.AlterField( + model_name='jobs', + name='salarytype', + field=models.CharField(blank=True, choices=[('H', 'Hourly'), ('D', 'Daily')], max_length=1, null=True), + ), + migrations.AddField( + model_name='staffattend', + name='jobs', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffenroll.Jobs', verbose_name='Job Type'), + ), + migrations.AddField( + model_name='staffattend', + name='school', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.School', verbose_name='\u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + migrations.AddField( + model_name='staffattend', + name='staff', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffs.Staffs', verbose_name='Staff'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0013_auto_20200106_1749.py b/student_registration/staffenroll/migrations/0013_auto_20200106_1749.py new file mode 100644 index 000000000..ca89ad906 --- /dev/null +++ b/student_registration/staffenroll/migrations/0013_auto_20200106_1749.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-06 15:49 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0012_auto_20200106_1733'), + ] + + operations = [ + migrations.RenameField( + model_name='staffattend', + old_name='jobs', + new_name='job', + ), + ] diff --git a/student_registration/staffenroll/migrations/0014_auto_20200106_1858.py b/student_registration/staffenroll/migrations/0014_auto_20200106_1858.py new file mode 100644 index 000000000..bf01d61fc --- /dev/null +++ b/student_registration/staffenroll/migrations/0014_auto_20200106_1858.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-06 16:58 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0013_auto_20200106_1749'), + ] + + operations = [ + migrations.AlterField( + model_name='staffattend', + name='isattend', + field=models.NullBooleanField(default=False), + ), + ] diff --git a/student_registration/staffenroll/migrations/0015_auto_20200106_2031.py b/student_registration/staffenroll/migrations/0015_auto_20200106_2031.py new file mode 100644 index 000000000..11a66cacd --- /dev/null +++ b/student_registration/staffenroll/migrations/0015_auto_20200106_2031.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-06 18:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0014_auto_20200106_1858'), + ] + + operations = [ + migrations.AlterField( + model_name='staffattend', + name='attendhours', + field=models.IntegerField(default=0), + ), + ] diff --git a/student_registration/staffenroll/migrations/0016_jobs_is_teacher.py b/student_registration/staffenroll/migrations/0016_jobs_is_teacher.py new file mode 100644 index 000000000..d82d17ed5 --- /dev/null +++ b/student_registration/staffenroll/migrations/0016_jobs_is_teacher.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-06 18:53 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0015_auto_20200106_2031'), + ] + + operations = [ + migrations.AddField( + model_name='jobs', + name='is_teacher', + field=models.BooleanField(default=False), + ), + ] diff --git a/student_registration/staffenroll/migrations/0017_auto_20200107_0432.py b/student_registration/staffenroll/migrations/0017_auto_20200107_0432.py new file mode 100644 index 000000000..9b94f3340 --- /dev/null +++ b/student_registration/staffenroll/migrations/0017_auto_20200107_0432.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-07 02:32 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0016_jobs_is_teacher'), + ] + + operations = [ + migrations.AddField( + model_name='jobs', + name='with_additionalhour', + field=models.BooleanField(default=False, verbose_name='with Hours no class'), + ), + migrations.AddField( + model_name='staffenroll', + name='weeklyhours_noclass', + field=models.IntegerField(default=0, verbose_name='Weekly Nb of hours no class'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0018_staffenroll_school_am.py b/student_registration/staffenroll/migrations/0018_staffenroll_school_am.py new file mode 100644 index 000000000..4cfe146c3 --- /dev/null +++ b/student_registration/staffenroll/migrations/0018_staffenroll_school_am.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-11 02:09 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0046_auto_20200106_0051'), + ('staffenroll', '0017_auto_20200107_0432'), + ] + + operations = [ + migrations.AddField( + model_name='staffenroll', + name='school_am', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.School', verbose_name='\u0627\u0644\u0645\u062f\u0631\u0633\u0629'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0019_auto_20200117_1032.py b/student_registration/staffenroll/migrations/0019_auto_20200117_1032.py new file mode 100644 index 000000000..fb3498e00 --- /dev/null +++ b/student_registration/staffenroll/migrations/0019_auto_20200117_1032.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-17 08:32 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0018_staffenroll_school_am'), + ] + + operations = [ + migrations.AlterField( + model_name='staffattend', + name='job', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffenroll.Jobs', verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644'), + ), + migrations.AlterField( + model_name='staffattend', + name='staff', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffs.Staffs', verbose_name='\u0627\u0644\u0639\u0627\u0645\u0644'), + ), + migrations.AlterField( + model_name='staffenroll', + name='job', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffenroll.Jobs', verbose_name='\u0648\u0638\u0627\u0626\u0641'), + ), + migrations.AlterField( + model_name='staffenroll', + name='shift', + field=models.CharField(blank=True, choices=[('D', '\u0646\u0647\u0627\u0631'), ('N', '\u0644\u064a\u0644')], max_length=1, null=True), + ), + migrations.AlterField( + model_name='staffenroll', + name='weeklyhours_noclass', + field=models.IntegerField(default=0, verbose_name='\u0639\u062f\u062f \u0627\u0644\u0633\u0627\u0639\u0627\u062a \u0641\u064a \u0627\u0644\u0623\u0633\u0628\u0648\u0639'), + ), + migrations.AlterField( + model_name='staffenroll', + name='work', + field=models.CharField(blank=True, max_length=150, verbose_name='\u0627\u0644\u0639\u0645\u0644 \u0627\u0644\u0631\u0626\u064a\u0633\u064a'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0020_auto_20200412_1034.py b/student_registration/staffenroll/migrations/0020_auto_20200412_1034.py new file mode 100644 index 000000000..4a62c2572 --- /dev/null +++ b/student_registration/staffenroll/migrations/0020_auto_20200412_1034.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-04-12 07:34 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + + ('staffenroll', '0019_auto_20200117_1032'), + ] + + operations = [ + migrations.CreateModel( + name='StatisticAttend', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('attenddate', models.DateField()), + ('hoursofattendance', models.IntegerField(default=0)), + ('nb_of_section', models.IntegerField(default=0)), + ('remarks', models.CharField(blank=True, max_length=200, null=True)), + ('education_year', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationYear', verbose_name='\u0627\u0644\u0633\u0646\u0629 \u0627\u0644\u062f\u0631\u0627\u0633\u064a\u0629')), + ('owner', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='\u0627\u0646\u0634\u0623 \u0645\u0646 \u0642\u0628\u0644')), + ('school', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.School', verbose_name='\u0627\u0644\u0645\u062f\u0631\u0633\u0629')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Worklist', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200, unique=True)), + ], + options={ + 'ordering': ['name'], + }, + ), + migrations.AddField( + model_name='staffenroll', + name='is_main', + field=models.BooleanField(default=False, verbose_name='main record'), + ), + migrations.AddField( + model_name='staffenroll', + name='worklist', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffenroll.Worklist', verbose_name='List of work'), + ), + ] diff --git a/student_registration/staffenroll/migrations/0021_auto_20200428_1043.py b/student_registration/staffenroll/migrations/0021_auto_20200428_1043.py new file mode 100644 index 000000000..fc6331388 --- /dev/null +++ b/student_registration/staffenroll/migrations/0021_auto_20200428_1043.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-04-28 07:43 +from __future__ import unicode_literals + +from django.db import migrations, models +import student_registration.staffenroll.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffenroll', '0020_auto_20200412_1034'), + ] + + operations = [ + migrations.AddField( + model_name='staffenroll', + name='image', + field=models.ImageField(blank=True, help_text='Form 5', null=True, upload_to='profiles', validators=[student_registration.staffenroll.models.validate_file_size], verbose_name='Form 5'), + ), + migrations.AddField( + model_name='staffenroll', + name='pic_commitment', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Picture of the commitment'), + ), + ] diff --git a/student_registration/staffenroll/migrations/__init__.py b/student_registration/staffenroll/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/student_registration/staffenroll/models.py b/student_registration/staffenroll/models.py new file mode 100644 index 000000000..be298be20 --- /dev/null +++ b/student_registration/staffenroll/models.py @@ -0,0 +1,286 @@ +from __future__ import unicode_literals +from model_utils.models import TimeStampedModel +from django.db import models + +import datetime +from django.db import models +from django.conf import settings +from django.utils.translation import ugettext as _ +from model_utils import Choices +from student_registration.staffs.models import Staffs +from student_registration.schools.models import ( + School, + ClassRoom, + Section, + EducationYear, +) +from django.core.exceptions import ValidationError + + +# Create your models here. +def validate_file_size(value): + filesize = value.size + if filesize > 250000: + raise ValidationError("The maximum file size that can be uploaded is 250K") + else: + return value + + +class Jobs(models.Model): + SALARYTYPE = Choices( + ('H', _('Hourly')), + ('D', _('Daily')), + ) + name = models.CharField(max_length=45, unique=True, verbose_name=_('Job description'), null=False, default=' ') + hourrate = models.IntegerField( + blank=True, + null=True, + verbose_name=_('Hour Rate') + ) + maxhoursperweek = models.IntegerField(blank=True, null=True, verbose_name=_('Max.Hours per week'), ) + salarytype = models.CharField( + max_length=1, + blank=True, + null=True, + choices=SALARYTYPE + ) + with_date_interval = models.BooleanField(blank=True, default=False) + is_teacher = models.BooleanField(blank=True, default=False) + with_additionalhour = models.BooleanField(blank=True, default=False, verbose_name='with Hours no class') + + class Meta: + ordering = ['id'] + verbose_name_plural = 'Jobs' + + def __unicode__(self): + return self.name + + +class Worklist(models.Model): + name = models.CharField(max_length=200, unique=True) + + class Meta: + ordering = ['name'] + + def __unicode__(self): + return self.name + + +class Subjects(models.Model): + name = models.CharField(max_length=45, unique=True) + + class Meta: + ordering = ['id'] + verbose_name_plural = 'Subjects' + + def __unicode__(self): + return self.name + + +class StaffEnroll(TimeStampedModel): + EDUCATION_YEARS = list((str(x - 1) + '/' + str(x), str(x - 1) + '/' + str(x)) for x in range(2001, 2050)) + EDUCATION_YEARS.append(('na', 'N/A')) + SCHOOL_SHIFT = Choices( + ('na', 'n/a'), + ('first', _('First shift')), + ('second', _('Second shift')), + ('alp', _('ALP')), + ) + SHIFT = Choices( + ('D', _('Day')), + ('N', _('Night')), + ) + CURRENT_YEAR = datetime.datetime.now().year + YEARS = ((str(x), x) for x in range(2016, CURRENT_YEAR)) + staff = models.ForeignKey( + Staffs, + blank=False, null=True, + related_name='staff_enrollment', + ) + job = models.ForeignKey( + Jobs, + blank=True, null=True, + verbose_name=_('Jobs') + ) + joineddate = models.CharField( + max_length=10, + blank=True, + null=True, + choices=EDUCATION_YEARS + ) + school = models.ForeignKey( + School, + blank=False, null=True, + related_name='school', + verbose_name=_('School') + ) + section = models.ForeignKey( + Section, + blank=True, null=True, + related_name='+', + verbose_name=_('Current Section') + ) + classroom = models.ForeignKey( + ClassRoom, + blank=True, null=True, + related_name='+', + verbose_name=_('Current Class') + ) + subject = models.ForeignKey( + Subjects, + blank=True, null=True, + related_name='+', + verbose_name=_('Subjects') + ) + education_year = models.ForeignKey( + EducationYear, + blank=True, null=True, + related_name='+', + verbose_name=_('Education year') + ) + owner = models.ForeignKey( + settings.AUTH_USER_MODEL, + blank=False, null=True, + related_name='+', + verbose_name=_('Created by') + ) + deleted = models.BooleanField( + blank=True, default=False, + verbose_name=_('deleted') + ) + weeklyhours = models.IntegerField( + default=0, + verbose_name=_('Weekly Nb of hours'), + ) + current_hourrate = models.IntegerField( + blank=True, + null=True, + verbose_name=_('Hour Rate') + ) + shift = models.CharField( + max_length=1, + blank=True, + null=True, + choices=SHIFT + ) + school_ispublic = models.BooleanField( + blank=True, default=False, + verbose_name=_('is public') + ) + work = models.CharField( + blank=True, max_length=150, verbose_name=_('main work') + ) + school_ismain = models.BooleanField( + blank=True, default=True, + verbose_name=_('is public') + ) + starting_work = models.DateField(blank=True, null=True) + ending_work = models.DateField(blank=True, null=True) + weeklyhours_noclass = models.IntegerField( + default=0, + verbose_name=_('Weekly Nb of hours no class'), + ) + school_am = models.ForeignKey( + School, + blank=False, null=True, + related_name='+', + verbose_name=_('School') + ) + is_main = models.BooleanField( + blank=True, default=False, + verbose_name=_('main record') + ) + worklist = models.ForeignKey( + Worklist, + blank=True, + null=True, + verbose_name=_('List of work') + ) + image = models.ImageField( + upload_to="profiles", + null=True, + blank=True, + help_text=_('Form 5'), + verbose_name=_('Form 5'), + validators=[validate_file_size] + ) + pic_commitment = models.CharField( + max_length=200, + blank=True, null=True, + verbose_name=_('Picture of the commitment') + ) + @property + def cycle(self): + if self.classroom_id in [2, 3, 4]: + return 'Cycle 1' + if self.classroom_id in [5, 6, 7]: + return 'Cycle 2' + if self.classroom_id in [8, 9, 10]: + return 'Cycle 3' + if self.classroom_id == 1: + return 'KG' + return '' + + class Meta: + ordering = ['-student__first_name'] + + def __unicode__(self): + if self.student: + return self.student.__unicode__() + return str(self.id) + + +class staffattend(TimeStampedModel): + school = models.ForeignKey( + School, + blank=False, null=True, + related_name='+', + verbose_name=_('School') + ) + education_year = models.ForeignKey( + EducationYear, + blank=True, null=True, + related_name='+', + verbose_name=_('Education year') + ) + job = models.ForeignKey( + Jobs, + blank=True, null=True, + related_name='+', + verbose_name=_('Job Type') + ) + staff = models.ForeignKey( + Staffs, + blank=False, null=True, + related_name='+', + verbose_name=_('Staff') + ) + attenddate = models.DateField(null=False) + attendhours = models.IntegerField(default=0) + isattend = models.NullBooleanField(blank=True, default=False, null=True) + attendremarks = models.CharField(blank=True, null=True, max_length=200) + + +class StatisticAttend(TimeStampedModel): + school = models.ForeignKey( + School, + blank=False, null=True, + related_name='+', + verbose_name=_('School') + ) + education_year = models.ForeignKey( + EducationYear, + blank=True, null=True, + related_name='+', + verbose_name=_('Education year') + ) + owner = models.ForeignKey( + settings.AUTH_USER_MODEL, + blank=False, null=True, + related_name='+', + verbose_name=_('Created by') + ) + attenddate = models.DateField(null=False) + hoursofattendance = models.IntegerField(default=0) + nb_of_section = models.IntegerField(default=0) + remarks = models.CharField(blank=True, null=True, max_length=200) diff --git a/student_registration/staffenroll/serializers.py b/student_registration/staffenroll/serializers.py new file mode 100644 index 000000000..c3287690a --- /dev/null +++ b/student_registration/staffenroll/serializers.py @@ -0,0 +1,188 @@ +from rest_framework import serializers + + +class EnrollmentSerializer(serializers.ModelSerializer): + + original_id = serializers.IntegerField(source='id', read_only=True) + staff_id = serializers.IntegerField(source='student.id', required=False) + staff_first_name = serializers.CharField(source='student.first_name') + staff_father_name = serializers.CharField(source='student.father_name') + staff_last_name = serializers.CharField(source='student.last_name') + staff_full_name = serializers.CharField(source='student.full_name', read_only=True) + staff_mother_fullname = serializers.CharField(source='student.mother_fullname') + staff_sex = serializers.CharField(source='student.sex') + staff_birthday_year = serializers.CharField(source='student.birthday_year') + staff_birthday_month = serializers.CharField(source='student.birthday_month') + staff_birthday_day = serializers.CharField(source='student.birthday_day') + staff_place_of_birth = serializers.CharField(source='student.place_of_birth', required=False) + staff_age = serializers.CharField(source='student.age', read_only=True) + staff_phone = serializers.CharField(source='student.phone', required=False) + staff_phone_prefix = serializers.CharField(source='student.phone_prefix', required=False) + staff_id_number = serializers.CharField(source='student.id_number', required=False) + staff_registered_in_unhcr = serializers.CharField(source='student.registered_in_unhcr', required=False) + staff_id_type = serializers.CharField(source='student.id_type', required=False) + staff_id_type_name = serializers.CharField(source='student.id_type.name', read_only=True) + staff_number = serializers.CharField(source='student.number', read_only=True) + staff_nationality = serializers.CharField(source='student.nationality', required=False) + staff_mother_nationality = serializers.CharField(source='student.mother_nationality', required=False) + staff_address = serializers.CharField(source='student.address', required=False) + school_name = serializers.CharField(source='school.name', read_only=True) + education_year_name = serializers.CharField(source='education_year.name', read_only=True) + school_number = serializers.CharField(source='school.number', read_only=True) + section_name = serializers.CharField(source='section.name', read_only=True) + classroom_name = serializers.CharField(source='classroom.name', read_only=True) + governorate_name = serializers.CharField(source='school.location.parent.name', read_only=True) + location = serializers.CharField(source='school.location.name', read_only=True) + staff_nationality_id = serializers.CharField(source='student.nationality.id', read_only=True) + staff_mother_nationality_id = serializers.CharField(source='student.mother_nationality.id', read_only=True) + + staff_image = serializers.ImageField(source='staff.image', read_only=True) + csrfmiddlewaretoken = serializers.IntegerField(source='owner.id', read_only=True) + save = serializers.IntegerField(source='owner.id', read_only=True) + staffenroll_id = serializers.IntegerField(source='id', read_only=True) + + + def create(self, validated_data): + from student_registration.students.serializers import StudentSerializer + from student_registration.students.models import Student + + student_data = validated_data.pop('student', None) + + if 'id' in student_data and student_data['id']: + student_serializer = StudentSerializer(Student.objects.get(id=student_data['id']), data=student_data) + student_serializer.is_valid(raise_exception=True) + student_serializer.instance = student_serializer.save() + else: + student_serializer = StudentSerializer(data=student_data) + student_serializer.is_valid(raise_exception=True) + student_serializer.instance = student_serializer.save() + try: + instance = Enrollment.objects.create(**validated_data) + instance.student = student_serializer.instance + instance.save() + + except Exception as ex: + raise serializers.ValidationError({'Enrollment instance': ex.message}) + + return instance + + def update(self, instance, validated_data): + + student_data = validated_data.pop('student', None) + + if student_data: + from student_registration.students.serializers import StudentSerializer + + student_serializer = StudentSerializer(instance.student, data=student_data) + student_serializer.is_valid(raise_exception=True) + student_serializer.instance = student_serializer.save() + try: + + for key in validated_data: + if hasattr(instance, key): + setattr(instance, key, validated_data[key]) + + instance.save() + + except Exception as ex: + raise serializers.ValidationError({'Enrollment instance': ex.message}) + + return instance + + class Meta: + model = Enrollment + fields = ( + 'id', + 'original_id', + 'enrollment_id', + 'student_id', + 'student_outreach_child', + 'student_outreach_child_id', + 'student_first_name', + 'student_father_name', + 'student_last_name', + 'student_full_name', + 'student_mother_fullname', + 'student_sex', + 'student_birthday_year', + 'student_birthday_month', + 'student_birthday_day', + 'student_place_of_birth', + 'student_age', + 'student_phone', + 'student_phone_prefix', + 'student_id_number', + 'student_id_type', + 'student_id_type_name', + 'student_number', + 'student_nationality', + 'student_mother_nationality', + 'student_registered_in_unhcr', + 'participated_in_alp', + 'number_in_previous_school', + # 'last_informal_edu_level', + 'last_informal_edu_round', + 'last_informal_edu_final_result', + 'student_address', + 'school', + 'school_name', + 'school_number', + 'section', + 'section_name', + 'classroom', + 'classroom_name', + 'last_year_result', + 'last_school_type', + 'last_school_shift', + 'last_school', + 'last_school_id', + 'last_education_level', + 'last_education_year', + 'owner', + 'governorate_name', + 'location', + 'student_nationality_id', + 'student_mother_nationality_id', + 'student_id_type_id', + 'last_education_level_id', + # 'last_informal_edu_level_id', + 'last_informal_edu_round_id', + 'last_informal_edu_final_result_id', + 'moved', + 'dropout_status', + 'exam_result_arabic', + 'exam_result_language', + 'exam_result_education', + 'exam_result_geo', + 'exam_result_history', + 'exam_result_math', + 'exam_result_science', + 'exam_result_physic', + 'exam_result_chemistry', + 'exam_result_bio', + 'exam_result_linguistic_ar', + 'exam_result_linguistic_en', + 'exam_result_sociology', + 'exam_result_physical', + 'exam_result_artistic', + 'exam_result_mathematics', + 'exam_result_sciences', + 'exam_total', + 'exam_result', + 'education_year', + 'education_year_name', + 'outreach_barcode', + 'student_outreached', + 'registration_date', + 'new_registry', + 'have_barcode', + 'search_school', + 'search_student', + 'search_barcode', + 'csrfmiddlewaretoken', + 'save', + 'school_type', + 'age_min_restricted', + 'age_max_restricted', + 'std_image', + ) diff --git a/student_registration/staffenroll/tables.py b/student_registration/staffenroll/tables.py new file mode 100644 index 000000000..1d850aa09 --- /dev/null +++ b/student_registration/staffenroll/tables.py @@ -0,0 +1,43 @@ +# coding: utf-8 +import django_tables2 as tables +from django.utils.translation import ugettext as _ + +from .models import StaffEnroll + + +class BootstrapTable(tables.Table): + + class Meta: + model = StaffEnroll + template = 'django_tables2/bootstrap.html' + attrs = {'class': 'table table-bordered table-striped table-hover'} + + +class StaffEnrollTable(tables.Table): + + edit_column = tables.TemplateColumn(verbose_name=_('Edit Staff'), orderable=False, + template_name='staffenroll/edit_column.html', + attrs={'url': '/staffenroll/edit/'}) + delete_column = tables.TemplateColumn(verbose_name=_('Delete Staff'), orderable=False, + template_name='staffenroll/delete_column.html', + attrs={'url': '/api/staffenroll/'}) + #student_age = tables.Column(verbose_name=_('Age'), accessor='student.age', orderable=False,) + + class Meta: + model = StaffEnroll + template = 'django_tables2/bootstrap.html' + fields = ( + 'edit_column', + 'delete_column', + 'staff.first_name', + 'staff.father_name', + 'staff.last_name', + 'staff.sex', + 'staff.mother_fullname', + 'staff.id_number', + 'staff.address', + 'staff_phone_number', + 'classroom', + 'section', + 'subject', + ) diff --git a/student_registration/staffenroll/tests.py b/student_registration/staffenroll/tests.py new file mode 100644 index 000000000..7ce503c2d --- /dev/null +++ b/student_registration/staffenroll/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/student_registration/staffenroll/urls.py b/student_registration/staffenroll/urls.py new file mode 100644 index 000000000..72c3fbaf2 --- /dev/null +++ b/student_registration/staffenroll/urls.py @@ -0,0 +1,28 @@ +from __future__ import absolute_import, unicode_literals + +from django.conf.urls import url +from . import views + +urlpatterns = [ + + url( + regex=r'^add/$', + view=views.AddView.as_view(), + name='add' + ), + # url( + # regex=r'^edit/(?P[\w.@+-]+)/$', + # view=views.EditView.as_view(), + # name='edit' +# ), + # url( + # regex=r'^saveimage/(?P[\w.@+-]+)/$', + # view=views.image_update, + # name='saveimage' + # ), + url( + regex=r'^list/$', + view=views.ListingView.as_view(), + name='list' + ), +] diff --git a/student_registration/staffenroll/views.py b/student_registration/staffenroll/views.py new file mode 100644 index 000000000..128865ed4 --- /dev/null +++ b/student_registration/staffenroll/views.py @@ -0,0 +1,72 @@ +from django.shortcuts import render +from django_tables2 import MultiTableMixin, RequestConfig, SingleTableView +from django_tables2.export.views import ExportMixin +from django.views.generic import FormView +from django.utils.translation import ugettext as _ +from braces.views import GroupRequiredMixin, SuperuserRequiredMixin +from django.contrib.auth.mixins import LoginRequiredMixin +from student_registration.staffenroll.filters import StaffEnrollFilter +from student_registration.staffenroll.models import StaffEnroll +from .tables import BootstrapTable, StaffEnrollTable +from student_registration.users.utils import force_default_language +from .models import EducationYear + + + +class ListingView(LoginRequiredMixin, + GroupRequiredMixin, + StaffEnrollFilter, + ExportMixin, + SingleTableView, + RequestConfig): + + table_class = StaffEnrollTable + model = StaffEnroll + template_name = 'staffenroll/list.html' + table = BootstrapTable(StaffEnroll.objects.all(), order_by='id') + filterset_class = StaffEnrollFilter + group_required = [u"SCHOOL"] + + def get_queryset(self): + force_default_language(self.request) + education_year = EducationYear.objects.get(current_year=True) + return StaffEnroll.objects.exclude(deleted=False).filter( + education_year=education_year, + school=self.request.user.school_id + ) + + +class AddView(LoginRequiredMixin, + GroupRequiredMixin, + FormView): + + template_name = 'bootstrap4/common_form.html' + #`form_class = StaffEnrollForm + success_url = '/staffenroll/list/' + group_required = [u"ENROL_CREATE"] + + def get_success_url(self): + if self.request.POST.get('save_add_another', None): + return '/staffenroll/add/' + return self.success_url + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(AddView, self).get_context_data(**kwargs) + + + + # def get_form(self, form_class=None): + # if self.request.method == "POST": + # return EnrollmentForm(self.request.POST, request=self.request) + # else: + # return EnrollmentForm(self.get_initial()) + + def form_valid(self, form): + if self.request.FILES and self.request.FILES['student_std_image']: + self.request.std_image = self.request.FILES['student_std_image'] + form.save(self.request) + return super(AddView, self).form_valid(form) diff --git a/student_registration/staffs/__init__.py b/student_registration/staffs/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/student_registration/staffs/admin.py b/student_registration/staffs/admin.py new file mode 100644 index 000000000..ca5c82937 --- /dev/null +++ b/student_registration/staffs/admin.py @@ -0,0 +1,12 @@ +from django.contrib import admin +from .models import Bank, Certificate, University, Staffs +from student_registration.users.models import Login +# Register your models here. + + +admin.site.register(Bank) +admin.site.register(Certificate) +admin.site.register(University) +admin.site.register(Staffs) +admin.site.register(Login) + diff --git a/student_registration/staffs/apps.py b/student_registration/staffs/apps.py new file mode 100644 index 000000000..3c2247821 --- /dev/null +++ b/student_registration/staffs/apps.py @@ -0,0 +1,7 @@ +from __future__ import unicode_literals + +from django.apps import AppConfig + + +class StaffsConfig(AppConfig): + name = 'staffs' diff --git a/student_registration/staffs/forms.py b/student_registration/staffs/forms.py new file mode 100644 index 000000000..9dc6cf05b --- /dev/null +++ b/student_registration/staffs/forms.py @@ -0,0 +1,170 @@ +from __future__ import unicode_literals, absolute_import, division +from django import forms +from django.core.urlresolvers import reverse +from django.utils.translation import ugettext as _ +from student_registration.students.models import Person, Nationality +from student_registration.staffs.models import Staffs, Bank, Certificate, University +from student_registration.locations.models import Location +from crispy_forms.helper import FormHelper +from crispy_forms.layout import Layout, Fieldset, Button, Submit, Div, Field, HTML + + +YEARS = list(((str(x), x) for x in range(Person.CURRENT_YEAR-20, Person.CURRENT_YEAR-2))) +YEARS.insert(0, ('', '---------')) + +DAYS = list(((str(x), x) for x in range(1, 32))) +DAYS.insert(0, ('', '---------')) + + +class StaffForm(forms.ModelForm): + + #def __init__(self, *args, **kwargs): + # super(StaffForm, self).__init__(*args, **kwargs) + + first_name = forms.CharField(label=_('First Name'), widget=forms.TextInput(attrs={'size': '80'})) + father_name = forms.CharField(label=_('Father Name'), widget=forms.TextInput(attrs={'size': '80'})) + last_name = forms.CharField(label=_('Family Name'), widget=forms.TextInput(attrs={'size': '80'})) + image = forms.ImageField(required=False) + id_number = forms.CharField(max_length=30, required=True, label=_('ID number')) + mother_fullname = forms.CharField(label=_('Mother fullname'), widget=forms.TextInput(attrs={'size': '80'})) + sex = forms.ChoiceField( + label=_("Sex"), + widget=forms.Select(attrs={'style': 'width:110px'}), required=True, + choices=( + ('', '----------'), + ('Male', _('Male')), + ('Female', _('Female')), + ) + ) + birthday_year = forms.ChoiceField( + label=_("Birthday year"), + widget=forms.Select(attrs={'style': 'width:110px'}), required=True, + choices=YEARS + ) + birthday_month = forms.ChoiceField( + label=_("Birthday month"), + widget=forms.Select(attrs={'style': 'width:110px'}), required=True, + choices=( + ('', '----------'), + ('1', _('January')), + ('2', _('February')), + ('3', _('March')), + ('4', _('April')), + ('5', _('May')), + ('6', _('June')), + ('7', _('July')), + ('8', _('August')), + ('9', _('September')), + ('10', _('October')), + ('11', _('November')), + ('12', _('December')), + ) + ) + birthday_day = forms.ChoiceField( + label=_("Birthday day"), + widget=forms.Select(attrs={'style': 'width:110px'}), required=True, + choices=DAYS + ) + place_of_birth = forms.CharField( + max_length=200, + required=False, + label=_('Place of birth'), widget=forms.TextInput(attrs={'size': '80'}) + ) + family_status = forms.ChoiceField( + label=_('Staff status'), + widget=forms.Select(attrs={'style': 'width:130px'}), required=False, + choices=( + ('married', _('Married')), + ('engaged', _('Engaged')), + ('divorced', _('Divorced')), + ('widower', _('Widower')), + ('single', _('Single')), + ) + ) + phone = forms.CharField(max_length=24, label=_('Phone number'), required=True) + address = forms.CharField( + label=_('Address'), + widget=forms.Textarea(attrs={'rows': 5, + 'cols': 80, + 'style': 'height: 5em;'}), + ) + MinisterApproval = forms.ChoiceField( + label=_("Minister Approval"), + choices=( + ('0', '--------'), + ('Exceptional', _('Exceptional Approved')), + ('AccordingToCond', _('Consent According to Conditions')), + ('CadreOrCont', _('Cadre / Contractual')), + ) + ) + nationality = forms.ModelChoiceField( + label=_('Nationality'), + queryset=Nationality.objects.all(), widget=forms.Select(attrs={'style': 'width:130px'}), + required=True + ) + bank = forms.ModelChoiceField( + label=_('Bank'), + queryset=Bank.objects.all(), widget=forms.Select(attrs={'style': 'width:130px'}), + required=False + ) + branch = forms.CharField( + label=_('Branch'), + widget=forms.TextInput(attrs={'size': '80'}), + required=False + ) + certificate = forms.ModelChoiceField( + label=_('Certificate'), + queryset=Certificate.objects.all(), widget=forms.Select(attrs={'style': 'width:130px'}), + required=False + ) + university = forms.ModelChoiceField( + label=_('University'), + queryset=University.objects.all(), widget=forms.Select(attrs={'style': 'width:130px'}), + required=False + ) + iban = forms.CharField( + label=_('IBAN'), + widget=forms.TextInput(attrs={'size': '80'}), + required=False + ) + Automated_Nb = forms.CharField( + label=_('Automated Nb'), + widget=forms.TextInput(attrs={'size': '80'}), + required=False + ) + Financial_Nb = forms.CharField( + label=_('Financial Nb'), + widget=forms.TextInput(attrs={'size': '80'}), + required=False + ) + governorate = forms.ModelChoiceField( + label=_('Governorate'), + queryset=Location.objects.filter(parent__isnull=True), widget=forms.Select(attrs={'style': 'width:130px'}), + required=False + ) + caza = forms.ModelChoiceField( + label=_('Caza'), + queryset=Location.objects.filter(parent__isnull=False), widget=forms.Select(attrs={'style': 'width:130px'}), + required=False + ) + + def __init__(self, *args, **kwargs): + self.request = kwargs.pop('request', None) + super(StaffForm, self).__init__(*args, **kwargs) + instance = kwargs['instance'] if 'instance' in kwargs else '' + + class Meta: + model = Staffs + fields = [ + 'image', 'first_name','father_name','last_name', 'sex', 'mother_fullname','birthday_year','birthday_month','birthday_day', + 'place_of_birth', + 'family_status', + 'id_number', + 'nationality', 'phone', 'governorate', 'caza', 'address', + 'certificate', 'university', + 'MinisterApproval', + 'Automated_Nb', 'Financial_Nb', + 'bank', 'branch', 'iban' + ] + + diff --git a/student_registration/staffs/migrations/0001_initial.py b/student_registration/staffs/migrations/0001_initial.py new file mode 100644 index 000000000..c9ed4e3e7 --- /dev/null +++ b/student_registration/staffs/migrations/0001_initial.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-02 12:48 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Banks', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('code', models.CharField(max_length=20, unique=True)), + ('name', models.CharField(max_length=45, unique=True)), + ], + options={ + 'ordering': ['code'], + }, + ), + migrations.CreateModel( + name='Certificate', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=60, unique=True)), + ], + options={ + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='University', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=60, unique=True)), + ], + options={ + 'ordering': ['name'], + }, + ), + ] diff --git a/student_registration/staffs/migrations/0002_staffs.py b/student_registration/staffs/migrations/0002_staffs.py new file mode 100644 index 000000000..c3f192a95 --- /dev/null +++ b/student_registration/staffs/migrations/0002_staffs.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-09 06:23 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('students', '0044_student_std_phone'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('staffs', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Staffs', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('first_name', models.CharField(blank=True, db_index=True, max_length=64, null=True, verbose_name='\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0627\u0648\u0644')), + ('last_name', models.CharField(blank=True, db_index=True, max_length=64, null=True, verbose_name='\u0627\u0644\u0634\u0647\u0631\u0629')), + ('father_name', models.CharField(blank=True, db_index=True, max_length=64, null=True, verbose_name='\u0627\u0633\u0645 \u0627\u0644\u0627\u0628')), + ('id_number', models.CharField(max_length=30, unique=True)), + ('MinisterApproval', models.CharField(blank=True, choices=[('Exceptional', 'Exceptional Approved'), ('AccordingToCond', 'Consent According to Conditions'), ('CadreOrCont', 'Cadre / Contractual')], max_length=150, null=True, verbose_name='Minister Approved')), + ('image', models.ImageField(blank=True, help_text='Profile Picture', null=True, upload_to='profiles', verbose_name='Profile Picture')), + ('mother_fullname', models.CharField(blank=True, db_index=True, max_length=64, null=True, verbose_name='\u0627\u0633\u0645 \u0627\u0644\u0623\u0645 \u0648\u0634\u0647\u0631\u062a\u0647\u0627 ')), + ('sex', models.CharField(blank=True, choices=[('Male', '\u0630\u0643\u0631'), ('Female', '\u0627\u0646\u062b\u0649')], max_length=50, null=True, verbose_name='\u0627\u0644\u062c\u0646\u0633')), + ('birthday_year', models.CharField(blank=True, choices=[(b'1990', 1990), (b'1991', 1991), (b'1992', 1992), (b'1993', 1993), (b'1994', 1994), (b'1995', 1995), (b'1996', 1996), (b'1997', 1997), (b'1998', 1998), (b'1999', 1999), (b'2000', 2000), (b'2001', 2001), (b'2002', 2002), (b'2003', 2003), (b'2004', 2004), (b'2005', 2005), (b'2006', 2006), (b'2007', 2007), (b'2008', 2008), (b'2009', 2009), (b'2010', 2010), (b'2011', 2011), (b'2012', 2012), (b'2013', 2013), (b'2014', 2014), (b'2015', 2015), (b'2016', 2016), (b'2017', 2017), (b'2018', 2018), (b'2019', 2019), (b'2020', 2020), (b'2021', 2021), (b'2022', 2022), (b'2023', 2023), (b'2024', 2024), (b'2025', 2025), (b'2026', 2026), (b'2027', 2027), (b'2028', 2028), (b'2029', 2029), (b'2030', 2030), (b'2031', 2031), (b'2032', 2032), (b'2033', 2033), (b'2034', 2034), (b'2035', 2035), (b'2036', 2036), (b'2037', 2037), (b'2038', 2038), (b'2039', 2039), (b'2040', 2040), (b'2041', 2041), (b'2042', 2042), (b'2043', 2043), (b'2044', 2044), (b'2045', 2045), (b'2046', 2046), (b'2047', 2047), (b'2048', 2048), (b'2049', 2049)], default=0, max_length=4, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0648\u0644\u0627\u062f\u0629 - \u0627\u0644\u0633\u0646\u0629')), + ('birthday_month', models.CharField(blank=True, choices=[('1', '\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a'), ('2', '\u0634\u0628\u0627\u0637'), ('3', '\u0622\u0630\u0627\u0631'), ('4', '\u0646\u064a\u0633\u0627\u0646'), ('5', '\u0623\u064a\u0627\u0631'), ('6', '\u062d\u0632\u064a\u0631\u0627\u0646'), ('7', '\u062a\u0645\u0648\u0632'), ('8', '\u0622\u0628'), ('9', '\u0623\u064a\u0644\u0648\u0644'), ('10', '\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644'), ('11', '\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a'), ('12', '\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644')], default=0, max_length=2, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0648\u0644\u0627\u062f\u0629 - \u0627\u0644\u0634\u0647\u0631')), + ('birthday_day', models.CharField(blank=True, choices=[(b'1', 1), (b'2', 2), (b'3', 3), (b'4', 4), (b'5', 5), (b'6', 6), (b'7', 7), (b'8', 8), (b'9', 9), (b'10', 10), (b'11', 11), (b'12', 12), (b'13', 13), (b'14', 14), (b'15', 15), (b'16', 16), (b'17', 17), (b'18', 18), (b'19', 19), (b'20', 20), (b'21', 21), (b'22', 22), (b'23', 23), (b'24', 24), (b'25', 25), (b'26', 26), (b'27', 27), (b'28', 28), (b'29', 29), (b'30', 30), (b'31', 31)], default=0, max_length=2, null=True, verbose_name='\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0648\u0644\u0627\u062f\u0629 - \u0627\u0644\u064a\u0648\u0645')), + ('place_of_birth', models.CharField(blank=True, max_length=200, null=True, verbose_name='\u0645\u0643\u0627\u0646 \u0627\u0644\u0648\u0644\u0627\u062f\u0629 ')), + ('family_status', models.CharField(blank=True, choices=[('married', '\u0645\u062a\u0632\u0648\u062c / \u0645\u062a\u0632\u0648\u062c\u0629'), ('engaged', '\u0645\u062e\u0637\u0648\u0628 / \u0645\u062e\u0637\u0648\u0628\u0629'), ('divorced', '\u0645\u0637\u0644\u0642 / \u0645\u0637\u0644\u0642\u0629'), ('widower', '\u0627\u0631\u0645\u0644 / \u0627\u0631\u0645\u0644\u0629'), ('single', '\u0623\u0639\u0632\u0628 / \u0639\u0632\u0628\u0627\u0621')], max_length=50, null=True, verbose_name='\u0648\u0636\u0639 \u0627\u0644\u062a\u0644\u0645\u064a\u0630')), + ('have_children', models.CharField(blank=True, choices=[(1, '\u0646\u0639\u0645'), (0, '\u0643\u0644\u0627')], max_length=50, null=True, verbose_name='\u0644\u062f\u064a\u0647 \u0627\u0637\u0641\u0627\u0644')), + ('phone', models.CharField(blank=True, max_length=24, null=True, verbose_name='\u0627\u0644\u0647\u0627\u062a\u0641')), + ('address', models.TextField(blank=True, null=True, verbose_name='\u0627\u0644\u0639\u0646\u0648\u0627\u0646')), + ('created', models.DateTimeField(default=django.utils.timezone.now)), + ('nationality', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='students.Nationality', verbose_name=' \u0627\u0644\u062c\u0646\u0633\u064a\u0629')), + ('owner', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='\u0627\u0646\u0634\u0623 \u0645\u0646 \u0642\u0628\u0644')), + ], + ), + ] diff --git a/student_registration/staffs/migrations/0003_remove_staffs_have_children.py b/student_registration/staffs/migrations/0003_remove_staffs_have_children.py new file mode 100644 index 000000000..db9771156 --- /dev/null +++ b/student_registration/staffs/migrations/0003_remove_staffs_have_children.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-09 11:25 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0002_staffs'), + ] + + operations = [ + migrations.RemoveField( + model_name='staffs', + name='have_children', + ), + ] diff --git a/student_registration/staffs/migrations/0004_auto_20190910_1023.py b/student_registration/staffs/migrations/0004_auto_20190910_1023.py new file mode 100644 index 000000000..2ed60a839 --- /dev/null +++ b/student_registration/staffs/migrations/0004_auto_20190910_1023.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-10 07:23 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0003_remove_staffs_have_children'), + ] + + operations = [ + migrations.RenameModel( + old_name='Banks', + new_name='Bank', + ), + migrations.AddField( + model_name='staffs', + name='bank', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffs.Bank', verbose_name='Bank'), + ), + migrations.AddField( + model_name='staffs', + name='branch', + field=models.CharField(blank=True, max_length=20, null=True, verbose_name='Branch'), + ), + migrations.AddField( + model_name='staffs', + name='certificate', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffs.Certificate', verbose_name='Certificate'), + ), + migrations.AddField( + model_name='staffs', + name='iban', + field=models.CharField(blank=True, max_length=100, null=True, verbose_name='IBAN'), + ), + migrations.AddField( + model_name='staffs', + name='type_of_employment', + field=models.CharField(blank=True, choices=[('Cadre', 'Cadre'), ('Contractual', 'Contractual'), ('Supporter', 'Supporter')], max_length=80, null=True, verbose_name='Type on Employment'), + ), + migrations.AddField( + model_name='staffs', + name='university', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffs.University', verbose_name='University Name'), + ), + migrations.AlterField( + model_name='staffs', + name='nationality', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='students.Nationality', verbose_name=' \u0627\u0644\u062c\u0646\u0633\u064a\u0629'), + ), + ] diff --git a/student_registration/staffs/migrations/0005_auto_20190910_1513.py b/student_registration/staffs/migrations/0005_auto_20190910_1513.py new file mode 100644 index 000000000..fe534ea58 --- /dev/null +++ b/student_registration/staffs/migrations/0005_auto_20190910_1513.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-10 12:13 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0004_auto_20190910_1023'), + ] + + operations = [ + migrations.AddField( + model_name='staffs', + name='Automated_Nb', + field=models.CharField(blank=True, max_length=15, null=True, verbose_name='Automated Nb'), + ), + migrations.AddField( + model_name='staffs', + name='Financial_Nb', + field=models.CharField(blank=True, max_length=20, null=True, verbose_name='Financial Nb'), + ), + ] diff --git a/student_registration/staffs/migrations/0006_auto_20190911_0221.py b/student_registration/staffs/migrations/0006_auto_20190911_0221.py new file mode 100644 index 000000000..2f68c289e --- /dev/null +++ b/student_registration/staffs/migrations/0006_auto_20190911_0221.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-10 23:21 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('locations', '0005_auto_20170731_2134'), + ('staffs', '0005_auto_20190910_1513'), + ] + + operations = [ + migrations.AddField( + model_name='staffs', + name='caza', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='staff_caza', to='locations.Location', verbose_name='Caza'), + ), + migrations.AddField( + model_name='staffs', + name='district', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='staff_district', to='locations.Location', verbose_name='\u0627\u0644\u0642\u0636\u0627\u0621'), + ), + ] diff --git a/student_registration/staffs/migrations/0007_auto_20190922_2321.py b/student_registration/staffs/migrations/0007_auto_20190922_2321.py new file mode 100644 index 000000000..081765a97 --- /dev/null +++ b/student_registration/staffs/migrations/0007_auto_20190922_2321.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-22 20:21 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import student_registration.staffs.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('locations', '0005_auto_20170731_2134'), + ('staffs', '0006_auto_20190911_0221'), + ] + + operations = [ + migrations.RemoveField( + model_name='staffs', + name='district', + ), + migrations.AddField( + model_name='staffs', + name='governorate', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='staff_governorate', to='locations.Location', verbose_name='\u0627\u0644\u0645\u062d\u0627\u0641\u0638\u0629'), + ), + migrations.AlterField( + model_name='staffs', + name='image', + field=models.ImageField(blank=True, help_text='Profile Picture', null=True, upload_to='profiles', validators=[student_registration.staffs.models.validate_file_size], verbose_name='Profile Picture'), + ), + ] diff --git a/student_registration/staffs/migrations/0008_auto_20190928_0838.py b/student_registration/staffs/migrations/0008_auto_20190928_0838.py new file mode 100644 index 000000000..6c37f59ca --- /dev/null +++ b/student_registration/staffs/migrations/0008_auto_20190928_0838.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-09-28 05:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import student_registration.staffs.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0007_auto_20190922_2321'), + ] + + operations = [ + migrations.AlterModelOptions( + name='bank', + options={'ordering': ['code'], 'verbose_name_plural': 'Bank'}, + ), + migrations.AlterModelOptions( + name='staffs', + options={'verbose_name_plural': 'Staff'}, + ), + migrations.AlterModelOptions( + name='university', + options={'ordering': ['name'], 'verbose_name_plural': 'Universities'}, + ), + migrations.AlterField( + model_name='staffs', + name='Automated_Nb', + field=models.CharField(blank=True, max_length=15, null=True, verbose_name='\u0627\u0644\u0631\u0642\u0645 \u0627\u0644\u0627\u0644\u064a'), + ), + migrations.AlterField( + model_name='staffs', + name='Financial_Nb', + field=models.CharField(blank=True, max_length=20, null=True, verbose_name='\u0627\u0644\u0631\u0642\u0645 \u0627\u0644\u0645\u0627\u0644\u064a'), + ), + migrations.AlterField( + model_name='staffs', + name='MinisterApproval', + field=models.CharField(blank=True, choices=[('Exceptional', '\u0645\u0648\u0627\u0641\u0642\u0629 \u0627\u0633\u062a\u062b\u0646\u0627\u0626\u064a\u0629'), ('AccordingToCond', '\u0645\u0648\u0627\u0641\u0642\u0629 \u0628\u062d\u0633\u0628 \u0627\u0644\u0634\u0631\u0648\u0637 \u0641\u064a \u0627\u0644\u0645\u0630\u0643\u0631\u0629'), ('CadreOrCont', '\u0645\u0644\u0627\u0643 \u0627\u0648 \u0645\u062a\u0639\u0627\u0642\u062f \u0648\u0641\u0642 \u0627\u0644\u0627\u0635\u0648\u0644')], max_length=150, null=True, verbose_name='\u0645\u0648\u0627\u0641\u0642\u0629 \u0627\u0644\u0648\u0632\u064a\u0631'), + ), + migrations.AlterField( + model_name='staffs', + name='bank', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffs.Bank', verbose_name='\u0627\u0644\u0628\u0646\u0643'), + ), + migrations.AlterField( + model_name='staffs', + name='branch', + field=models.CharField(blank=True, max_length=20, null=True, verbose_name='\u0627\u0644\u0641\u0631\u0639'), + ), + migrations.AlterField( + model_name='staffs', + name='caza', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='staff_caza', to='locations.Location', verbose_name='\u0627\u0644\u0642\u0636\u0627\u0621'), + ), + migrations.AlterField( + model_name='staffs', + name='certificate', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffs.Certificate', verbose_name='\u0627\u0644\u0634\u0647\u0627\u062f\u0629'), + ), + migrations.AlterField( + model_name='staffs', + name='image', + field=models.ImageField(blank=True, help_text='\u0627\u0644\u0635\u0648\u0631\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629', null=True, upload_to='profiles', validators=[student_registration.staffs.models.validate_file_size], verbose_name='\u0627\u0644\u0635\u0648\u0631\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629'), + ), + migrations.AlterField( + model_name='staffs', + name='type_of_employment', + field=models.CharField(blank=True, choices=[('Cadre', '\u0645\u0644\u0627\u0643'), ('Contractual', 'Contractual'), ('Supporter', '\u0645\u0633\u062a\u0639\u0627\u0646 \u0628\u0647')], max_length=80, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0648\u0638\u064a\u0641\u0629'), + ), + migrations.AlterField( + model_name='staffs', + name='university', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='staffs.University', verbose_name='\u0625\u0633\u0645 \u0627\u0644\u062c\u0627\u0645\u0639\u0629'), + ), + ] diff --git a/student_registration/staffs/migrations/0009_auto_20191008_1151.py b/student_registration/staffs/migrations/0009_auto_20191008_1151.py new file mode 100644 index 000000000..23a682e5a --- /dev/null +++ b/student_registration/staffs/migrations/0009_auto_20191008_1151.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-10-08 08:51 +from __future__ import unicode_literals + +from django.db import migrations, models +import student_registration.staffs.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0008_auto_20190928_0838'), + ] + + operations = [ + migrations.AlterField( + model_name='staffs', + name='iban', + field=models.CharField(blank=True, max_length=100, null=True, verbose_name='\u0631\u0642\u0645 \u0627\u0644\u062d\u0633\u0627\u0628 \u0627\u0644\u0628\u0646\u0643\u064a IBAN'), + ), + migrations.AlterField( + model_name='staffs', + name='image', + field=models.ImageField(blank=True, help_text='\u0627\u0644\u0635\u0648\u0631\u0629 \u0627\u0644\u0634\u0645\u0633\u064a\u0629', null=True, upload_to='profiles', validators=[student_registration.staffs.models.validate_file_size], verbose_name='\u0627\u0644\u0635\u0648\u0631\u0629 \u0627\u0644\u0634\u0645\u0633\u064a\u0629'), + ), + migrations.AlterField( + model_name='staffs', + name='type_of_employment', + field=models.CharField(blank=True, choices=[('Cadre', '\u0645\u0644\u0627\u0643'), ('Contractual', '\u0645\u062a\u0639\u0627\u0642\u062f'), ('Supporter', '\u0645\u0633\u062a\u0639\u0627\u0646 \u0628\u0647')], max_length=80, null=True, verbose_name='\u0646\u0648\u0639 \u0627\u0644\u0648\u0638\u064a\u0641\u0629'), + ), + ] diff --git a/student_registration/staffs/migrations/0010_auto_20191120_1447.py b/student_registration/staffs/migrations/0010_auto_20191120_1447.py new file mode 100644 index 000000000..95c044677 --- /dev/null +++ b/student_registration/staffs/migrations/0010_auto_20191120_1447.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-20 12:47 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0009_auto_20191008_1151'), + ] + + operations = [ + migrations.RenameField( + model_name='staffs', + old_name='Automated_Nb', + new_name='automated_nb', + ), + migrations.RenameField( + model_name='staffs', + old_name='Financial_Nb', + new_name='financial_nb', + ), + ] diff --git a/student_registration/staffs/migrations/0011_auto_20191121_1007.py b/student_registration/staffs/migrations/0011_auto_20191121_1007.py new file mode 100644 index 000000000..3d912480a --- /dev/null +++ b/student_registration/staffs/migrations/0011_auto_20191121_1007.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-21 08:07 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0010_auto_20191120_1447'), + ] + + operations = [ + migrations.RenameField( + model_name='staffs', + old_name='MinisterApproval', + new_name='ministerapproval', + ), + ] diff --git a/student_registration/staffs/migrations/0012_staffs_staff_seq.py b/student_registration/staffs/migrations/0012_staffs_staff_seq.py new file mode 100644 index 000000000..f2580d34f --- /dev/null +++ b/student_registration/staffs/migrations/0012_staffs_staff_seq.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-22 05:54 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0011_auto_20191121_1007'), + ] + + operations = [ + migrations.AddField( + model_name='staffs', + name='staff_seq', + field=models.IntegerField(blank=True, null=True), + ), + ] diff --git a/student_registration/staffs/migrations/0013_remove_staffs_staff_seq.py b/student_registration/staffs/migrations/0013_remove_staffs_staff_seq.py new file mode 100644 index 000000000..9a6ba2429 --- /dev/null +++ b/student_registration/staffs/migrations/0013_remove_staffs_staff_seq.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-21 06:59 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0012_staffs_staff_seq'), + ] + + operations = [ + migrations.RemoveField( + model_name='staffs', + name='staff_seq', + ), + ] diff --git a/student_registration/staffs/migrations/0014_auto_20191222_0205.py b/student_registration/staffs/migrations/0014_auto_20191222_0205.py new file mode 100644 index 000000000..516994e3e --- /dev/null +++ b/student_registration/staffs/migrations/0014_auto_20191222_0205.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-22 00:05 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0013_remove_staffs_staff_seq'), + ] + + operations = [ + migrations.AddField( + model_name='staffs', + name='email', + field=models.EmailField(blank=True, max_length=254, verbose_name='email address'), + ), + migrations.AddField( + model_name='staffs', + name='staff_seq', + field=models.IntegerField(blank=True, null=True), + ), + ] diff --git a/student_registration/staffs/migrations/0015_staffs_first_education_year.py b/student_registration/staffs/migrations/0015_staffs_first_education_year.py new file mode 100644 index 000000000..5060005d9 --- /dev/null +++ b/student_registration/staffs/migrations/0015_staffs_first_education_year.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-23 11:33 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0014_auto_20191222_0205'), + ] + + operations = [ + migrations.AddField( + model_name='staffs', + name='first_education_year', + field=models.CharField(blank=True, choices=[('2000/2001', '2000/2001'), ('2001/2002', '2001/2002'), ('2002/2003', '2002/2003'), ('2003/2004', '2003/2004'), ('2004/2005', '2004/2005'), ('2005/2006', '2005/2006'), ('2006/2007', '2006/2007'), ('2007/2008', '2007/2008'), ('2008/2009', '2008/2009'), ('2009/2010', '2009/2010'), ('2010/2011', '2010/2011'), ('2011/2012', '2011/2012'), ('2012/2013', '2012/2013'), ('2013/2014', '2013/2014'), ('2014/2015', '2014/2015'), ('2015/2016', '2015/2016'), ('2016/2017', '2016/2017'), ('2017/2018', '2017/2018'), ('2018/2019', '2018/2019'), ('2019/2020', '2019/2020'), ('2020/2021', '2020/2021'), ('2021/2022', '2021/2022'), ('2022/2023', '2022/2023'), ('2023/2024', '2023/2024'), ('2024/2025', '2024/2025'), ('2025/2026', '2025/2026'), ('2026/2027', '2026/2027'), ('2027/2028', '2027/2028'), ('2028/2029', '2028/2029'), ('2029/2030', '2029/2030'), ('2030/2031', '2030/2031'), ('2031/2032', '2031/2032'), ('2032/2033', '2032/2033'), ('2033/2034', '2033/2034'), ('2034/2035', '2034/2035'), ('2035/2036', '2035/2036'), ('2036/2037', '2036/2037'), ('2037/2038', '2037/2038'), ('2038/2039', '2038/2039'), ('2039/2040', '2039/2040'), ('2040/2041', '2040/2041'), ('2041/2042', '2041/2042'), ('2042/2043', '2042/2043'), ('2043/2044', '2043/2044'), ('2044/2045', '2044/2045'), ('2045/2046', '2045/2046'), ('2046/2047', '2046/2047'), ('2047/2048', '2047/2048'), ('2048/2049', '2048/2049'), ('na', 'N/A')], max_length=10, null=True, verbose_name=' \u0622\u062e\u0631 \u0633\u0646\u0629 \u062f\u0631\u0627\u0633\u064a\u0629'), + ), + ] diff --git a/student_registration/staffs/migrations/0016_auto_20191227_0102.py b/student_registration/staffs/migrations/0016_auto_20191227_0102.py new file mode 100644 index 000000000..fd9d8436e --- /dev/null +++ b/student_registration/staffs/migrations/0016_auto_20191227_0102.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-12-26 23:02 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0015_staffs_first_education_year'), + ] + + operations = [ + migrations.AddField( + model_name='staffs', + name='cert_origin', + field=models.CharField(blank=True, max_length=70, null=True, verbose_name='Speciality'), + ), + migrations.AddField( + model_name='staffs', + name='speciality', + field=models.CharField(blank=True, max_length=70, null=True, verbose_name='Speciality'), + ), + ] diff --git a/student_registration/staffs/migrations/0017_auto_20200114_0918.py b/student_registration/staffs/migrations/0017_auto_20200114_0918.py new file mode 100644 index 000000000..ce67a62d4 --- /dev/null +++ b/student_registration/staffs/migrations/0017_auto_20200114_0918.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-14 07:18 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0016_auto_20191227_0102'), + ] + + operations = [ + migrations.RemoveField( + model_name='staffs', + name='bank', + ), + migrations.RemoveField( + model_name='staffs', + name='branch', + ), + migrations.RemoveField( + model_name='staffs', + name='iban', + ), + migrations.AddField( + model_name='staffs', + name='bank_Base1', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffs.Bank', verbose_name='\u0627\u0644\u0628\u0646\u0643'), + ), + migrations.AddField( + model_name='staffs', + name='bank_Base2', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffs.Bank', verbose_name='\u0627\u0644\u0628\u0646\u0643'), + ), + migrations.AddField( + model_name='staffs', + name='branch_base1', + field=models.CharField(blank=True, max_length=60, null=True, verbose_name='\u0627\u0644\u0641\u0631\u0639'), + ), + migrations.AddField( + model_name='staffs', + name='branch_base2', + field=models.CharField(blank=True, max_length=60, null=True, verbose_name='\u0627\u0644\u0641\u0631\u0639'), + ), + migrations.AddField( + model_name='staffs', + name='iban_base1', + field=models.CharField(blank=True, max_length=100, null=True, verbose_name='IBAN LL'), + ), + migrations.AddField( + model_name='staffs', + name='iban_base2', + field=models.CharField(blank=True, max_length=100, null=True, verbose_name='IBAN $'), + ), + ] diff --git a/student_registration/staffs/migrations/0018_auto_20200117_1032.py b/student_registration/staffs/migrations/0018_auto_20200117_1032.py new file mode 100644 index 000000000..547876975 --- /dev/null +++ b/student_registration/staffs/migrations/0018_auto_20200117_1032.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-01-17 08:32 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0017_auto_20200114_0918'), + ] + + operations = [ + migrations.AlterField( + model_name='staffs', + name='cert_origin', + field=models.CharField(blank=True, max_length=70, null=True, verbose_name=' \u0627\u0644\u062c\u0646\u0633\u064a\u0629'), + ), + migrations.AlterField( + model_name='staffs', + name='speciality', + field=models.CharField(blank=True, max_length=70, null=True, verbose_name=' \u0627\u0644\u062c\u0646\u0633\u064a\u0629'), + ), + ] diff --git a/student_registration/staffs/migrations/0019_auto_20200317_1935.py b/student_registration/staffs/migrations/0019_auto_20200317_1935.py new file mode 100644 index 000000000..53488e625 --- /dev/null +++ b/student_registration/staffs/migrations/0019_auto_20200317_1935.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-17 17:35 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0018_auto_20200117_1032'), + ] + + operations = [ + migrations.RenameField( + model_name='staffs', + old_name='bank_Base1', + new_name='bank_base1', + ), + migrations.RenameField( + model_name='staffs', + old_name='bank_Base2', + new_name='bank_base2', + ), + ] diff --git a/student_registration/staffs/migrations/0020_auto_20200328_2011.py b/student_registration/staffs/migrations/0020_auto_20200328_2011.py new file mode 100644 index 000000000..9aed8477d --- /dev/null +++ b/student_registration/staffs/migrations/0020_auto_20200328_2011.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-28 18:11 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0019_auto_20200317_1935'), + ] + + operations = [ + migrations.AddField( + model_name='staffs', + name='pic_2ndshiftcertificate', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Picture of the second shift certificate'), + ), + migrations.AddField( + model_name='staffs', + name='pic_commitment', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Picture of the commitment'), + ), + migrations.AddField( + model_name='staffs', + name='pic_iban', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Picture of the iban'), + ), + migrations.AddField( + model_name='staffs', + name='pic_identification', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Picture of Identy'), + ), + ] diff --git a/student_registration/staffs/migrations/0021_staffs_pic_certificate.py b/student_registration/staffs/migrations/0021_staffs_pic_certificate.py new file mode 100644 index 000000000..b11e46c4e --- /dev/null +++ b/student_registration/staffs/migrations/0021_staffs_pic_certificate.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-29 07:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0020_auto_20200328_2011'), + ] + + operations = [ + migrations.AddField( + model_name='staffs', + name='pic_certificate', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Picture of the certificate'), + ), + ] diff --git a/student_registration/staffs/migrations/0022_staffs_disabled.py b/student_registration/staffs/migrations/0022_staffs_disabled.py new file mode 100644 index 000000000..ef83bc0e3 --- /dev/null +++ b/student_registration/staffs/migrations/0022_staffs_disabled.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-29 09:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0021_staffs_pic_certificate'), + ] + + operations = [ + migrations.AddField( + model_name='staffs', + name='disabled', + field=models.BooleanField(default=False, verbose_name='Disabled?'), + ), + ] diff --git a/student_registration/staffs/migrations/0023_auto_20200412_1029.py b/student_registration/staffs/migrations/0023_auto_20200412_1029.py new file mode 100644 index 000000000..45fb36467 --- /dev/null +++ b/student_registration/staffs/migrations/0023_auto_20200412_1029.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-04-12 07:29 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('staffs', '0022_staffs_disabled'), + ] + + operations = [ + migrations.CreateModel( + name='ParticipantYear', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('participantyear', models.CharField(blank=True, choices=[('2013/2014', '2013/2014'), ('2014/2015', '2014/2015'), ('2015/2016', '2015/2016'), ('2016/2017', '2016/2017'), ('2017/2018', '2017/2018'), ('2018/2019', '2018/2019'), ('2019/2020', '2019/2020'), ('2020/2021', '2020/2021')], max_length=9, null=True)), + ], + ), + migrations.AddField( + model_name='staffs', + name='pic_iban2', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Picture of the iban'), + ), + migrations.AlterField( + model_name='staffs', + name='id_number', + field=models.CharField(max_length=30), + ), + migrations.AddField( + model_name='participantyear', + name='staff', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='staffs.Staffs', verbose_name='\u0627\u0644\u0639\u0627\u0645\u0644'), + ), + ] diff --git a/student_registration/staffs/migrations/__init__.py b/student_registration/staffs/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/student_registration/staffs/models.py b/student_registration/staffs/models.py new file mode 100644 index 000000000..3a4cf5d0b --- /dev/null +++ b/student_registration/staffs/models.py @@ -0,0 +1,375 @@ +from __future__ import unicode_literals, absolute_import, division +import datetime +from django.conf import settings +from django.db import models +from django.utils.translation import ugettext as _ +from student_registration.locations.models import Location +from model_utils import Choices +from student_registration.students.utils import generate_id +from student_registration.students.models import Nationality +# Create your models here. +import django.utils.timezone +from PIL import Image +from django.core.exceptions import ValidationError + + +def validate_file_size(value): + filesize = value.size + if filesize > 250000: + raise ValidationError("The maximum file size that can be uploaded is 250K") + else: + return value + + +class Bank(models.Model): + code = models.CharField(max_length=20, unique=True) + name = models.CharField(max_length=45, unique=True) + + class Meta: + ordering = ['code'] + verbose_name_plural = "Bank" + + def __unicode__(self): + return self.name + + +class Certificate(models.Model): + name = models.CharField(max_length=60, unique=True) + + class Meta: + ordering = ['name'] + + def __unicode__(self): + return self.name + + +class University(models.Model): + name = models.CharField(max_length=60, unique=True) + + class Meta: + ordering = ['name'] + verbose_name_plural = 'Universities' + + def __unicode__(self): + return self.name + + +class Staffs(models.Model): + EDUCATION_YEARS = list((str(x - 1) + '/' + str(x), str(x - 1) + '/' + str(x)) for x in range(2001, 2050)) + EDUCATION_YEARS.append(('na', 'N/A')) + TYPEOFEMP = Choices( + ('Cadre', _('Cadre')), + ('Contractual', _('Contractual')), + ('Supporter', _('Supporter')), + ) + MinisAppr = Choices( + ('Exceptional', _('Exceptional Approved')), + ('AccordingToCond', _('Consent According to Conditions')), + ('CadreOrCont', _('Cadre / Contractual')), + ) + + CURRENT_YEAR = datetime.datetime.now().year + + MONTHS = Choices( + ('1', _('January')), + ('2', _('February')), + ('3', _('March')), + ('4', _('April')), + ('5', _('May')), + ('6', _('June')), + ('7', _('July')), + ('8', _('August')), + ('9', _('September')), + ('10', _('October')), + ('11', _('November')), + ('12', _('December')), + ) + + GENDER = Choices( + ('Male', _('Male')), + ('Female', _('Female')), + ) + FAMILY_STATUS = Choices( + ('married', _('Married')), + ('engaged', _('Engaged')), + ('divorced', _('Divorced')), + ('widower', _('Widower')), + ('single', _('Single')), + ) + + first_name = models.CharField( + max_length=64, + db_index=True, + blank=True, null=True, + verbose_name=_('First name') + ) + last_name = models.CharField( + max_length=64, + db_index=True, + blank=True, null=True, + verbose_name=_('Last name') + ) + father_name = models.CharField( + max_length=64, + db_index=True, + blank=True, null=True, + verbose_name=_('Father name') + ) + id_number = models.CharField(max_length=30, blank=False) + ministerapproval = models.CharField( + max_length=150, + blank=True, + null=True, + choices=MinisAppr, + verbose_name=_('Minister Approved') + ) + image = models.ImageField( + upload_to="profiles", + null=True, + blank=True, + help_text=_('Profile Picture'), + verbose_name=_('Profile Picture'), + validators=[validate_file_size] + ) + mother_fullname = models.CharField( + max_length=64, + db_index=True, + blank=True, null=True, + verbose_name=_('Mother fullname') + ) + sex = models.CharField( + max_length=50, + blank=True, + null=True, + choices=GENDER, + verbose_name=_('Sex') + ) + birthday_year = models.CharField( + max_length=4, + blank=True, + null=True, + default=0, + choices=((str(x), x) for x in range(1990, 2050)), + verbose_name=_('Birthday year') + ) + birthday_month = models.CharField( + max_length=2, + blank=True, + null=True, + default=0, + choices=MONTHS, + verbose_name=_('Birthday month') + ) + birthday_day = models.CharField( + max_length=2, + blank=True, + null=True, + default=0, + choices=((str(x), x) for x in range(1, 32)), + verbose_name=_('Birthday day') + ) + place_of_birth = models.CharField( + max_length=200, + blank=True, + null=True, + verbose_name=_('Place of birth') + ) + family_status = models.CharField( + max_length=50, + blank=True, + null=True, + choices=FAMILY_STATUS, + verbose_name=_('Family status') + ) + phone = models.CharField(max_length=24, blank=True, null=True, verbose_name=_('Phone number')) + nationality = models.ForeignKey( + Nationality, + blank=True, null=True, + verbose_name=_('Nationality') + ) + address = models.TextField( + blank=True, + null=True, + verbose_name=_('Address') + ) + owner = models.ForeignKey( + settings.AUTH_USER_MODEL, + blank=False, null=True, + verbose_name=_('Created by'), + related_name='+', + ) + created = models.DateTimeField(default=django.utils.timezone.now) + bank_base1 = models.ForeignKey( + Bank, + blank=True, null=True, + related_name='+', + verbose_name=_('Bank'), + ) + branch_base1 = models.CharField( + max_length=60, + blank=True, + null=True, + verbose_name=_('Branch') + ) + iban_base1 = models.CharField( + max_length=100, + blank=True, + null=True, + verbose_name=_('IBAN LL') + ) + bank_base2 = models.ForeignKey( + Bank, + related_name='+', + blank=True, null=True, + verbose_name=_('Bank'), + ) + branch_base2 = models.CharField( + max_length=60, + blank=True, + null=True, + verbose_name=_('Branch') + ) + iban_base2 = models.CharField( + max_length=100, + blank=True, + null=True, + verbose_name=_('IBAN $') + ) + type_of_employment = models.CharField( + max_length=80, + blank=True, + null=True, + choices=TYPEOFEMP, + verbose_name=_('Type on Employment') + ) + certificate = models.ForeignKey( + Certificate, + blank=True, + null=True, + verbose_name=_('Certificate') + ) + university = models.ForeignKey( + University, + blank=True, + null=True, + verbose_name=_('University Name') + ) + automated_nb = models.CharField( + max_length=15, + blank=True, null=True, + verbose_name=_('Automated Nb') + ) + financial_nb = models.CharField( + max_length=20, + blank=True, null=True, + verbose_name=_('Financial Nb') + ) + governorate = models.ForeignKey( + Location, + blank=True, + null=True, + verbose_name=_('Governorate'), + related_name='staff_governorate' + ) + caza = models.ForeignKey( + Location, + blank=True, + null=True, + verbose_name=_('Caza'), + related_name='staff_caza' + ) + staff_seq = models.IntegerField(blank=True, null=True) + email = models.EmailField(blank=True, max_length=254, verbose_name='email address') + first_education_year = models.CharField( + max_length=10, + blank=True, + null=True, + choices=EDUCATION_YEARS, + verbose_name=_('Last Education year') + ) + speciality = models.CharField( + max_length=70, + blank=True, null=True, + verbose_name=_('Speciality') + ) + cert_origin = models.CharField( + max_length=70, + blank=True, null=True, + verbose_name=_('Speciality') + ) + pic_identification = models.CharField( + max_length=200, + blank=True, null=True, + verbose_name=_('Picture of Identy') + ) + pic_commitment = models.CharField( + max_length=200, + blank=True, null=True, + verbose_name=_('Picture of the commitment') + ) + pic_2ndshiftcertificate = models.CharField( + max_length=200, + blank=True, null=True, + verbose_name=_('Picture of the second shift certificate') + ) + pic_iban = models.CharField( + max_length=200, + blank=True, null=True, + verbose_name=_('Picture of the iban') + ) + pic_certificate = models.CharField( + max_length=200, + blank=True, null=True, + verbose_name=_('Picture of the certificate') + ) + disabled = models.BooleanField( + blank=True, default=False, + verbose_name=_('Disabled?') + ) + pic_iban2 = models.CharField( + max_length=200, + blank=True, null=True, + verbose_name=_('Picture of the iban') + ) + def __unicode__(self): + if not self.first_name: + return 'No name' + + return u'{} {} {}'.format( + self.first_name, + self.father_name, + self.last_name, + ) + + class Meta: + verbose_name_plural = "Staff" + + +class ParticipantYear(models.Model): + SELECTYEAR = Choices( + ('2013/2014', '2013/2014'), + ('2014/2015', '2014/2015'), + ('2015/2016', '2015/2016'), + ('2016/2017', '2016/2017'), + ('2017/2018', '2017/2018'), + ('2018/2019', '2018/2019'), + ('2019/2020', '2019/2020'), + ('2020/2021', '2020/2021'), + ) + participantyear = models.CharField( + max_length=9, + blank=True, + null=True, + choices=SELECTYEAR + ) + notes = models.CharField( + max_length=150, + blank=True, null=True + ), + + staff = models.ForeignKey( + Staffs, + blank=True, null=True, + related_name='+', + verbose_name=_('Staff') + ) diff --git a/student_registration/staffs/tables.py b/student_registration/staffs/tables.py new file mode 100644 index 000000000..e69de29bb diff --git a/student_registration/staffs/tests.py b/student_registration/staffs/tests.py new file mode 100644 index 000000000..7ce503c2d --- /dev/null +++ b/student_registration/staffs/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/student_registration/staffs/urls.py b/student_registration/staffs/urls.py new file mode 100644 index 000000000..8da42812a --- /dev/null +++ b/student_registration/staffs/urls.py @@ -0,0 +1,23 @@ +from __future__ import absolute_import, unicode_literals + +from django.conf.urls import url +from . import views + +urlpatterns = [ + + url( + regex=r'^add/$', + view=views.CreateStaffView.as_view(), + name='add' + ), + url( + regex=r'^update/(?P[\w.@+-]+)/$', + view=views.EditStaffView.as_view(), + name='update' + ), + url( + regex=r'^stafflist/$', + view=views.ListStaffView.as_view(), + name='stafflist' + ), +] diff --git a/student_registration/staffs/views.py b/student_registration/staffs/views.py new file mode 100644 index 000000000..9e367cc7c --- /dev/null +++ b/student_registration/staffs/views.py @@ -0,0 +1,98 @@ +from django.views.generic import CreateView, UpdateView, ListView +from django.shortcuts import render_to_response, render, get_object_or_404, redirect +from student_registration.staffs.forms import StaffForm +from django.utils.translation import ugettext as _ +from student_registration.staffs.models import Staffs +from django.http import Http404, HttpResponseRedirect +from django.template.context_processors import csrf +from django.views.generic import ListView, FormView, TemplateView, UpdateView +from django.core.urlresolvers import reverse +from student_registration.users.utils import force_default_language + + +class CreateStaffView(CreateView): + template_name = 'staffs/staff_form.html' + form_class = StaffForm() + queryset = Staffs.objects.all() + + def get(self, request, *args, **kwargs): + the_form = StaffForm() + context = { + 'title': _('STAFF FORM'), + 'form': the_form, + } + return render(request, 'staffs/staff_form.html', context) + + def post(self, request, *args, **kwargs): + form = StaffForm(request.POST, request.FILES) + if request.POST: + if form.is_valid(): + staff = form.save() + staff.owner = request.user + staff.save() + return HttpResponseRedirect('/staffs/add/') + else: + return render(request, 'staffs/staff_form.html', {'form': form}) + else: + form = StaffForm() + + args = {} + args.update(csrf(request)) + + args['form'] = form + return render_to_response('staffs/staff_form.html', args) + + +class EditStaffView(UpdateView, FormView): + model = Staffs + form_class = StaffForm() + + template_name = 'staffs/staff_form.html' + success_url = '/staffs/stafflist/' + context_object_name = 'staff' + + def get_context_data(self, **kwargs): + force_default_language(self.request) + """Insert the form into the context dict.""" + if 'form' not in kwargs: + kwargs['form'] = self.get_form() + return super(EditStaffView, self).get_context_data(**kwargs) + + def get_form(self, form_class=None): + instance = Staffs.objects.get(id=self.kwargs['pk']) + if self.request.method == "POST": + return StaffForm(self.request.POST, instance=instance) + else: + return StaffForm(instance=instance) + + def form_valid(self, form): + instance = Staffs.objects.get(id=self.kwargs['pk']) + if self.request.FILES and self.request.FILES['image']: + form.instance.image = self.request.FILES['image'] + form.instance.save() + form.save() + return super(EditStaffView, self).form_valid(form) + +'''class EditStaffView(UpdateView): + model = Staffs + fields = ( + 'first_name', + 'father_name', + 'last_name', + 'image', + 'MinisterApproval', + 'id_number', + ) + template_name = 'staffs/staff_update_form.html' + success_url = '/staffs/stafflist/' + context_object_name = 'staff' +''' + + +class ListStaffView(ListView): + model = Staffs + template_name = 'staffs/stafflist.html' + context_object_name = 'staff_list' + + def get_queryset(self): + return Staffs.objects.all() diff --git a/student_registration/static/css/admin.css b/student_registration/static/css/admin.css index 952b53d53..c71348633 100644 --- a/student_registration/static/css/admin.css +++ b/student_registration/static/css/admin.css @@ -1 +1,4 @@ div.admindatefilter .controls { display: none; } +#content { padding: 15px; } +#suit-center { padding: 0px; } +#suit-left { padding-left: 40px; } diff --git a/student_registration/static/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/student_registration/static/css/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100755 index 000000000..a2e6bfc08 Binary files /dev/null and b/student_registration/static/css/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/student_registration/static/css/images/ui-icons_444444_256x240.png b/student_registration/static/css/images/ui-icons_444444_256x240.png new file mode 100755 index 000000000..df4e37378 Binary files /dev/null and b/student_registration/static/css/images/ui-icons_444444_256x240.png differ diff --git a/student_registration/static/css/images/ui-icons_555555_256x240.png b/student_registration/static/css/images/ui-icons_555555_256x240.png new file mode 100755 index 000000000..bbb422fed Binary files /dev/null and b/student_registration/static/css/images/ui-icons_555555_256x240.png differ diff --git a/student_registration/static/css/images/ui-icons_777620_256x240.png b/student_registration/static/css/images/ui-icons_777620_256x240.png new file mode 100755 index 000000000..ee49e9e50 Binary files /dev/null and b/student_registration/static/css/images/ui-icons_777620_256x240.png differ diff --git a/student_registration/static/css/images/ui-icons_777777_256x240.png b/student_registration/static/css/images/ui-icons_777777_256x240.png new file mode 100755 index 000000000..b01ff3dee Binary files /dev/null and b/student_registration/static/css/images/ui-icons_777777_256x240.png differ diff --git a/student_registration/static/css/images/ui-icons_cc0000_256x240.png b/student_registration/static/css/images/ui-icons_cc0000_256x240.png new file mode 100755 index 000000000..892019394 Binary files /dev/null and b/student_registration/static/css/images/ui-icons_cc0000_256x240.png differ diff --git a/student_registration/static/css/images/ui-icons_ffffff_256x240.png b/student_registration/static/css/images/ui-icons_ffffff_256x240.png new file mode 100755 index 000000000..1cba4313d Binary files /dev/null and b/student_registration/static/css/images/ui-icons_ffffff_256x240.png differ diff --git a/student_registration/static/images/UNHCR_barcode.jpg b/student_registration/static/images/UNHCR_barcode.jpg new file mode 100755 index 000000000..e2a08f9fc Binary files /dev/null and b/student_registration/static/images/UNHCR_barcode.jpg differ diff --git a/student_registration/static/images/UNHCR_individualID.jpg b/student_registration/static/images/UNHCR_individualID.jpg new file mode 100755 index 000000000..f2f98c30e Binary files /dev/null and b/student_registration/static/images/UNHCR_individualID.jpg differ diff --git a/student_registration/static/images/icon-help.png b/student_registration/static/images/icon-help.png new file mode 100644 index 000000000..0c8faaefa Binary files /dev/null and b/student_registration/static/images/icon-help.png differ diff --git a/student_registration/static/images/mehe.png b/student_registration/static/images/mehe.png new file mode 100644 index 000000000..2add1a850 Binary files /dev/null and b/student_registration/static/images/mehe.png differ diff --git a/student_registration/static/images/staff.png b/student_registration/static/images/staff.png new file mode 100644 index 000000000..98c86632f Binary files /dev/null and b/student_registration/static/images/staff.png differ diff --git a/student_registration/static/images/student.png b/student_registration/static/images/student.png new file mode 100644 index 000000000..301219d0e Binary files /dev/null and b/student_registration/static/images/student.png differ diff --git a/student_registration/static/images/syrian_nationalID.png b/student_registration/static/images/syrian_nationalID.png new file mode 100755 index 000000000..31cab97ac Binary files /dev/null and b/student_registration/static/images/syrian_nationalID.png differ diff --git a/student_registration/static/images/unhcr_certificate.jpg b/student_registration/static/images/unhcr_certificate.jpg new file mode 100755 index 000000000..cfd6071dc Binary files /dev/null and b/student_registration/static/images/unhcr_certificate.jpg differ diff --git a/student_registration/static/js/attendance.js b/student_registration/static/js/attendance.js index e41cc1a60..c7b50eb9f 100644 --- a/student_registration/static/js/attendance.js +++ b/student_registration/static/js/attendance.js @@ -158,12 +158,17 @@ function get_level_section_attendances(exam_day, not_attending) var total_absent_male = 0; var total_absent_female = 0; $('.enrollment_id').each(function (i, item) { + var enrollment = $(item).attr('itemref'); var enrollment_id = $(item).val(); var status = null; - var sex = $('#student_sex_'+enrollment_id).val(); +// var sex = $('#student_sex_'+enrollment).val(); + var status = $('#status_'+enrollment_id).val(); + var sex = $(item).attr('student_sex'); +// var status = $(item).attr('status'); + var absence_reason = null; - if($('#status_'+enrollment_id).val() == '' || $('#status_'+enrollment_id).val() == 'True' || $('#status_'+enrollment_id).val() == 'true'){ + if(status == '' || status == 'True' || status == 'true'){ status = 'True'; absence_reason = ''; if(sex == 'Male'){ @@ -173,7 +178,9 @@ function get_level_section_attendances(exam_day, not_attending) } }else{ status = 'False'; - absence_reason = $('.absence_reason_' + enrollment_id+':checked').val(); +// absence_reason = $('.absence_reason_'+enrollment+':checked').val(); + console.log($(item).attr('absence_reason')); + absence_reason = $($(item).attr('absence_reason')).val(); if(sex == 'Male'){ total_absent_male = total_absent_male + 1; }else{ @@ -183,23 +190,44 @@ function get_level_section_attendances(exam_day, not_attending) total_attended = total_attended_male + total_attended_female; total_absences = total_absent_male + total_absent_female; - var student_id = $('#student_id_' + enrollment_id).val(); + +// var student_id = $('#student_id_'+enrollment).val(); +// var student_fullname = $('#student_fullname_'+enrollment).val(); +// var student_age = $('#student_age_'+enrollment).val(); +// var student_birthday = $('#student_birthday_'+enrollment).val(); +// var section = $('#section_'+enrollment).val(); +// var section_name = $('#section_name_'+enrollment).val(); +// var level = $('#level_'+enrollment).val(); +// var level_name = $('#level_name_'+enrollment).val(); +// var dropout = $('#student_dropout_'+enrollment).val(); + + var student_id = $(item).attr('student_id'); + var student_fullname = $(item).attr('student_fullname'); + var student_age = $(item).attr('student_age'); + var student_birthday = $(item).attr('student_birthday'); + var section = $(item).attr('section'); + var section_name = $(item).attr('section_name'); + var level = $(item).attr('level'); + var level_name = $(item).attr('level_name'); + var dropout = $(item).attr('student_dropout'); students.push({ student_id: student_id, - student_fullname: $('#student_fullname_' + enrollment_id).val(), + student_fullname: student_fullname, student_sex: sex, - student_age: $('#student_age_' + enrollment_id).val(), - student_birthday: $('#student_birthday_' + enrollment_id).val(), - section: $('#section_' + enrollment_id).val(), - section_name: $('#section_name_' + enrollment_id).val(), - level: $('#level_' + enrollment_id).val(), - level_name: $('#level_name_' + enrollment_id).val(), + student_age: student_age, + student_birthday: student_birthday, + section: section, + section_name: section_name, + level: level, + level_name: level_name, status: status, absence_reason: absence_reason, - dropout: $('#student_dropout_' + enrollment_id).val() + dropout: dropout }); +// console.log(students); + }); var level_section_name = $('#level').val() + "-" + $('#section').val(); diff --git a/student_registration/static/js/custom.min.js b/student_registration/static/js/custom.min.js index d7e8b4df0..aaf0250c6 100644 --- a/student_registration/static/js/custom.min.js +++ b/student_registration/static/js/custom.min.js @@ -1 +1 @@ -function countChecked(){"all"===checkState&&$(".bulk_action input[name='table_records']").iCheck("check"),"none"===checkState&&$(".bulk_action input[name='table_records']").iCheck("uncheck");var e=$(".bulk_action input[name='table_records']:checked").length;e?($(".column-title").hide(),$(".bulk-actions").show(),$(".action-cnt").html(e+" Records Selected")):($(".column-title").show(),$(".bulk-actions").hide())}!function(e,t){var n=function(e,t,n){var i;return function(){function c(){n||e.apply(a,o),i=null}var a=this,o=arguments;i?clearTimeout(i):n&&e.apply(a,o),i=setTimeout(c,t||100)}};jQuery.fn[t]=function(e){return e?this.bind("resize",n(e)):this.trigger(t)}}(jQuery,"smartresize");var CURRENT_URL=window.location.href.split("?")[0],$BODY=$("body"),$MENU_TOGGLE=$("#menu_toggle"),$SIDEBAR_MENU=$("#sidebar-menu"),$SIDEBAR_FOOTER=$(".sidebar-footer"),$LEFT_COL=$(".left_col"),$RIGHT_COL=$(".right_col"),$NAV_MENU=$(".nav_menu"),$FOOTER=$("footer");$(document).ready(function(){var e=function(){$RIGHT_COL.css("min-height",$(window).height());var e=$BODY.outerHeight(),t=$BODY.hasClass("footer_fixed")?-10:$FOOTER.height(),n=$LEFT_COL.eq(1).height()+$SIDEBAR_FOOTER.height(),i=n>e?n:e;i-=$NAV_MENU.height()+t,$RIGHT_COL.css("min-height",i)};$SIDEBAR_MENU.find("a").on("click",function(t){var n=$(this).parent();n.is(".active")?(n.removeClass("active active-sm"),$("ul:first",n).slideUp(function(){e()})):(n.parent().is(".child_menu")||($SIDEBAR_MENU.find("li").removeClass("active active-sm"),$SIDEBAR_MENU.find("li ul").slideUp()),n.addClass("active"),$("ul:first",n).slideDown(function(){e()}))}),$MENU_TOGGLE.on("click",function(){$BODY.hasClass("nav-md")?($SIDEBAR_MENU.find("li.active ul").hide(),$SIDEBAR_MENU.find("li.active").addClass("active-sm").removeClass("active")):($SIDEBAR_MENU.find("li.active-sm ul").show(),$SIDEBAR_MENU.find("li.active-sm").addClass("active").removeClass("active-sm")),$BODY.toggleClass("nav-md nav-sm"),e()}),$SIDEBAR_MENU.find('a[href="'+CURRENT_URL+'"]').parent("li").addClass("current-page"),$SIDEBAR_MENU.find("a").filter(function(){return this.href==CURRENT_URL}).parent("li").addClass("current-page").parents("ul").slideDown(function(){e()}).parent().addClass("active"),$(window).smartresize(function(){e()}),e(),$.fn.mCustomScrollbar&&$(".menu_fixed").mCustomScrollbar({autoHideScrollbar:!0,theme:"minimal",mouseWheel:{preventDefault:!0}})}),$(document).ready(function(){$(".collapse-link").on("click",function(){var e=$(this).closest(".x_panel"),t=$(this).find("i"),n=e.find(".x_content");e.attr("style")?n.slideToggle(200,function(){e.removeAttr("style")}):(n.slideToggle(200),e.css("height","auto")),t.toggleClass("fa-chevron-up fa-chevron-down")}),$(".close-link").click(function(){var e=$(this).closest(".x_panel");e.remove()})}),$(document).ready(function(){$('[data-toggle="tooltip"]').tooltip({container:"body"})}),$(".progress .progress-bar")[0]&&$(".progress .progress-bar").progressbar(),$(document).ready(function(){if($(".js-switch")[0]){var e=Array.prototype.slice.call(document.querySelectorAll(".js-switch"));e.forEach(function(e){new Switchery(e,{color:"#26B99A"})})}}),$(document).ready(function(){$("input.flat")[0]&&$(document).ready(function(){$("input.flat").iCheck({checkboxClass:"icheckbox_flat-green",radioClass:"iradio_flat-green"})})}),$("table input").on("ifChecked",function(){checkState="",$(this).parent().parent().parent().addClass("selected"),countChecked()}),$("table input").on("ifUnchecked",function(){checkState="",$(this).parent().parent().parent().removeClass("selected"),countChecked()});var checkState="";$(".bulk_action input").on("ifChecked",function(){checkState="",$(this).parent().parent().parent().addClass("selected"),countChecked()}),$(".bulk_action input").on("ifUnchecked",function(){checkState="",$(this).parent().parent().parent().removeClass("selected"),countChecked()}),$(".bulk_action input#check-all").on("ifChecked",function(){checkState="all",countChecked()}),$(".bulk_action input#check-all").on("ifUnchecked",function(){checkState="none",countChecked()}),$(document).ready(function(){$(".expand").on("click",function(){$(this).next().slideToggle(200),$expand=$(this).find(">:first-child"),"+"==$expand.text()?$expand.text("-"):$expand.text("+")})}),"undefined"!=typeof NProgress&&($(document).ready(function(){NProgress.start()}),$(window).load(function(){NProgress.done()})); \ No newline at end of file +//function countChecked(){"all"===checkState&&$(".bulk_action input[name='table_records']").iCheck("check"),"none"===checkState&&$(".bulk_action input[name='table_records']").iCheck("uncheck");var e=$(".bulk_action input[name='table_records']:checked").length;e?($(".column-title").hide(),$(".bulk-actions").show(),$(".action-cnt").html(e+" Records Selected")):($(".column-title").show(),$(".bulk-actions").hide())}!function(e,t){var n=function(e,t,n){var i;return function(){function c(){n||e.apply(a,o),i=null}var a=this,o=arguments;i?clearTimeout(i):n&&e.apply(a,o),i=setTimeout(c,t||100)}};jQuery.fn[t]=function(e){return e?this.bind("resize",n(e)):this.trigger(t)}}(jQuery,"smartresize");var CURRENT_URL=window.location.href.split("?")[0],$BODY=$("body"),$MENU_TOGGLE=$("#menu_toggle"),$SIDEBAR_MENU=$("#sidebar-menu"),$SIDEBAR_FOOTER=$(".sidebar-footer"),$LEFT_COL=$(".left_col"),$RIGHT_COL=$(".right_col"),$NAV_MENU=$(".nav_menu"),$FOOTER=$("footer");$(document).ready(function(){var e=function(){$RIGHT_COL.css("min-height",$(window).height());var e=$BODY.outerHeight(),t=$BODY.hasClass("footer_fixed")?-10:$FOOTER.height(),n=$LEFT_COL.eq(1).height()+$SIDEBAR_FOOTER.height(),i=n>e?n:e;i-=$NAV_MENU.height()+t,$RIGHT_COL.css("min-height",i)};$SIDEBAR_MENU.find("a").on("click",function(t){var n=$(this).parent();n.is(".active")?(n.removeClass("active active-sm"),$("ul:first",n).slideUp(function(){e()})):(n.parent().is(".child_menu")||($SIDEBAR_MENU.find("li").removeClass("active active-sm"),$SIDEBAR_MENU.find("li ul").slideUp()),n.addClass("active"),$("ul:first",n).slideDown(function(){e()}))}),$MENU_TOGGLE.on("click",function(){$BODY.hasClass("nav-md")?($SIDEBAR_MENU.find("li.active ul").hide(),$SIDEBAR_MENU.find("li.active").addClass("active-sm").removeClass("active")):($SIDEBAR_MENU.find("li.active-sm ul").show(),$SIDEBAR_MENU.find("li.active-sm").addClass("active").removeClass("active-sm")),$BODY.toggleClass("nav-md nav-sm"),e()}),$SIDEBAR_MENU.find('a[href="'+CURRENT_URL+'"]').parent("li").addClass("current-page"),$SIDEBAR_MENU.find("a").filter(function(){return this.href==CURRENT_URL}).parent("li").addClass("current-page").parents("ul").slideDown(function(){e()}).parent().addClass("active"),$(window).smartresize(function(){e()}),e(),$.fn.mCustomScrollbar&&$(".menu_fixed").mCustomScrollbar({autoHideScrollbar:!0,theme:"minimal",mouseWheel:{preventDefault:!0}})}),$(document).ready(function(){$(".collapse-link").on("click",function(){var e=$(this).closest(".x_panel"),t=$(this).find("i"),n=e.find(".x_content");e.attr("style")?n.slideToggle(200,function(){e.removeAttr("style")}):(n.slideToggle(200),e.css("height","auto")),t.toggleClass("fa-chevron-up fa-chevron-down")}),$(".close-link").click(function(){var e=$(this).closest(".x_panel");e.remove()})}),$(document).ready(function(){$('[data-toggle="tooltip"]').tooltip({container:"body"})}),$(".progress .progress-bar")[0]&&$(".progress .progress-bar").progressbar(),$(document).ready(function(){if($(".js-switch")[0]){var e=Array.prototype.slice.call(document.querySelectorAll(".js-switch"));e.forEach(function(e){new Switchery(e,{color:"#26B99A"})})}}),$(document).ready(function(){$("input.flat")[0]&&$(document).ready(function(){$("input.flat").iCheck({checkboxClass:"icheckbox_flat-green",radioClass:"iradio_flat-green"})})}),$("table input").on("ifChecked",function(){checkState="",$(this).parent().parent().parent().addClass("selected"),countChecked()}),$("table input").on("ifUnchecked",function(){checkState="",$(this).parent().parent().parent().removeClass("selected"),countChecked()});var checkState="";$(".bulk_action input").on("ifChecked",function(){checkState="",$(this).parent().parent().parent().addClass("selected"),countChecked()}),$(".bulk_action input").on("ifUnchecked",function(){checkState="",$(this).parent().parent().parent().removeClass("selected"),countChecked()}),$(".bulk_action input#check-all").on("ifChecked",function(){checkState="all",countChecked()}),$(".bulk_action input#check-all").on("ifUnchecked",function(){checkState="none",countChecked()}),$(document).ready(function(){$(".expand").on("click",function(){$(this).next().slideToggle(200),$expand=$(this).find(">:first-child"),"+"==$expand.text()?$expand.text("-"):$expand.text("+")})}),"undefined"!=typeof NProgress&&($(document).ready(function(){NProgress.start()}),$(window).load(function(){NProgress.done()})); diff --git a/student_registration/static/js/jquery-3.3.1.min.js b/student_registration/static/js/jquery-3.3.1.min.js new file mode 100755 index 000000000..4d9b3a258 --- /dev/null +++ b/student_registration/static/js/jquery-3.3.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(" + + + + +{% endblock %} + diff --git a/student_registration/templates/account/messages/logged_in.txt b/student_registration/templates/account/messages/logged_in.txt new file mode 100644 index 000000000..4857a9eaf --- /dev/null +++ b/student_registration/templates/account/messages/logged_in.txt @@ -0,0 +1,4 @@ +{% load account %} +{% load i18n %} +{% user_display user as name %} +{% blocktrans %}Successfully signed in.{% endblocktrans %} diff --git a/student_registration/templates/account/password_change.html b/student_registration/templates/account/password_change.html old mode 100644 new mode 100755 index b55ddd179..6296160cc --- a/student_registration/templates/account/password_change.html +++ b/student_registration/templates/account/password_change.html @@ -7,6 +7,8 @@ {% block head_title %}{% trans "Change Password" %}{% endblock %} {% block account_nav_change_password %}active{% endblock %} +{% load static %} + {% block inner %}

{% trans "Change Password" %}

@@ -20,3 +22,15 @@

{% trans "Change Password" %}

{% endblock %} +{% block extra_js %} + + + + +{% endblock %} diff --git a/student_registration/templates/alp/list.html b/student_registration/templates/alp/list.html index 2b2493e10..ada713ee4 100644 --- a/student_registration/templates/alp/list.html +++ b/student_registration/templates/alp/list.html @@ -62,6 +62,7 @@ {% endblock %} diff --git a/student_registration/templates/alp/outreach.html b/student_registration/templates/alp/outreach.html index 6d7a3c079..096d18aa3 100644 --- a/student_registration/templates/alp/outreach.html +++ b/student_registration/templates/alp/outreach.html @@ -44,6 +44,7 @@ {% endblock %} diff --git a/student_registration/templates/alp/post_test.html b/student_registration/templates/alp/post_test.html index 57e0916f7..1f08559c4 100644 --- a/student_registration/templates/alp/post_test.html +++ b/student_registration/templates/alp/post_test.html @@ -41,6 +41,7 @@ {% endblock %} diff --git a/student_registration/templates/alp/pre_test.html b/student_registration/templates/alp/pre_test.html index 1439ff7e7..94f51884e 100644 --- a/student_registration/templates/alp/pre_test.html +++ b/student_registration/templates/alp/pre_test.html @@ -17,10 +17,18 @@ @@ -48,6 +56,7 @@ {% endblock %} diff --git a/student_registration/templates/attendances/level_section.html b/student_registration/templates/attendances/level_section.html index ea4e7636a..b2457b337 100644 --- a/student_registration/templates/attendances/level_section.html +++ b/student_registration/templates/attendances/level_section.html @@ -85,7 +85,13 @@ {% for line in students %}
- + + @@ -157,6 +163,7 @@ diff --git a/student_registration/templates/attendances/school_day.html b/student_registration/templates/attendances/school_day.html index 732cfe197..d60210e26 100644 --- a/student_registration/templates/attendances/school_day.html +++ b/student_registration/templates/attendances/school_day.html @@ -143,6 +143,7 @@ diff --git a/student_registration/templates/clm/abln_followup.html b/student_registration/templates/clm/abln_followup.html new file mode 100644 index 000000000..8cfd74740 --- /dev/null +++ b/student_registration/templates/clm/abln_followup.html @@ -0,0 +1,44 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load crispy_forms_tags %} + +{% block head_title %}Registration{% endblock %} + +{% block extra_head %} + + + + +{% endblock %} + +{% block content %} + + + +
+ +
+
+ {{ form.errors }} + {% crispy form %} +
+
+ +
+ +{% endblock %} + +{% block extra_js %} + + + + + + + +{% endblock %} diff --git a/student_registration/templates/clm/abln_list.html b/student_registration/templates/clm/abln_list.html new file mode 100644 index 000000000..338532016 --- /dev/null +++ b/student_registration/templates/clm/abln_list.html @@ -0,0 +1,71 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load static %} +{% load render_table from django_tables2 %} +{% load bootstrap3 %} +{% load util_tags %} +{% bootstrap_css %} + +{% block extra_head %} + +{% endblock %} + +{% block content-full-page-ar %} + + + + + +
+
+ {% bootstrap_form filter.form layout='inline' %} + {% bootstrap_button _('filter') button_class="btn-primary" %} + {% bootstrap_button _('reset') button_type="link" button_class="btn-warning" href='/clm/abln-list/' %} +
+
+
+ {% csrf_token %} + {% render_table table 'django_tables2/bootstrap.html' %} +
+ +{% endblock %} + +{% block extra_js %} + {% get_user_token request.user.id as user_token %} + + + + + +{% endblock %} diff --git a/student_registration/templates/clm/abln_post_assessment.html b/student_registration/templates/clm/abln_post_assessment.html new file mode 100644 index 000000000..e86718342 --- /dev/null +++ b/student_registration/templates/clm/abln_post_assessment.html @@ -0,0 +1,37 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load crispy_forms_tags %} + +{% block head_title %}Registration{% endblock %} + +{% block extra_head %} + + + + +{% endblock %} + +{% block content %} + +
+ +
+
+ {{ form.errors }} + {% crispy form %} +
+
+ +
+ +{% endblock %} + +{% block extra_js %} + + + + + + + +{% endblock %} diff --git a/student_registration/templates/clm/abln_referral.html b/student_registration/templates/clm/abln_referral.html new file mode 100644 index 000000000..8cfd74740 --- /dev/null +++ b/student_registration/templates/clm/abln_referral.html @@ -0,0 +1,44 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load crispy_forms_tags %} + +{% block head_title %}Registration{% endblock %} + +{% block extra_head %} + + + + +{% endblock %} + +{% block content %} + + + +
+ +
+
+ {{ form.errors }} + {% crispy form %} +
+
+ +
+ +{% endblock %} + +{% block extra_js %} + + + + + + + +{% endblock %} diff --git a/student_registration/templates/clm/bln_followup.html b/student_registration/templates/clm/bln_followup.html new file mode 100644 index 000000000..8cfd74740 --- /dev/null +++ b/student_registration/templates/clm/bln_followup.html @@ -0,0 +1,44 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load crispy_forms_tags %} + +{% block head_title %}Registration{% endblock %} + +{% block extra_head %} + + + + +{% endblock %} + +{% block content %} + + + +
+ +
+
+ {{ form.errors }} + {% crispy form %} +
+
+ +
+ +{% endblock %} + +{% block extra_js %} + + + + + + + +{% endblock %} diff --git a/student_registration/templates/clm/bln_list.html b/student_registration/templates/clm/bln_list.html index 436831d3c..45661b59d 100644 --- a/student_registration/templates/clm/bln_list.html +++ b/student_registration/templates/clm/bln_list.html @@ -27,10 +27,12 @@
+ + {% endif %} + {% if request.user|has_group:"CLM_ABLN" %} +
+
+ + 100%x180 + +
+

ABLN

+ +
+
{% endif %} {% if request.user|has_group:"CLM_RS" %} diff --git a/student_registration/templates/clm/rs_dashboard.html b/student_registration/templates/clm/rs_dashboard.html index ed3250a15..49487cfbb 100644 --- a/student_registration/templates/clm/rs_dashboard.html +++ b/student_registration/templates/clm/rs_dashboard.html @@ -94,6 +94,41 @@ {% endfor %} +
+ + + + + {% for item in disability %} + + {% endfor %} + + + {% for item in disability %} + + + {% endfor %} + + + + {% for item in dis_gov %} + + + {% for dis_count in item.dis %} + + + {% endfor %} + + {% endfor %} + +
Governorate{{item.name }}
MaleFemale
{{ item.governorate }}{{ dis_count.student_male_dis }}{{ dis_count.student_female_dis }}
diff --git a/student_registration/templates/clm/rs_list.html b/student_registration/templates/clm/rs_list.html index 60107ab3f..67c091e46 100644 --- a/student_registration/templates/clm/rs_list.html +++ b/student_registration/templates/clm/rs_list.html @@ -63,6 +63,7 @@ {% endblock %} diff --git a/student_registration/templates/dashboard/attendance_list.html b/student_registration/templates/dashboard/attendance_list.html new file mode 100644 index 000000000..eeb91df95 --- /dev/null +++ b/student_registration/templates/dashboard/attendance_list.html @@ -0,0 +1,125 @@ + + +{% load staticfiles i18n %} +{% get_current_language as LANGUAGE_CODE %} +{% load util_tags %} + + + + + + Available Documents + + + + + + + + + +
+
+ +
+
+ الجمهورية اللبنانية +
+ وزارة التربية والتعليم العالي +
+ وحدة برنامج التعليم الشامل +
+ PMU +
+
+ + مجموع الحضور و الغياب لكل طالب +
+
+ +{% regroup v_data by groupby as std_data %} + +
    + {% for groupby in std_data %} + +
    + +
  • {{ groupby.grouper }}
  • +
    + + + + + + + + + + {% for data in groupby.list %} + +
    +
    + + + + + {% ifequal data.sex 'Male' %} + + {% else %} + + {% endifequal %} + + + + + + + {% endfor %} +
    + الرقم + المتسلسل + الإسم الثلاثيإسم الأمتاريخ الميلادالجنسرقم compiler الموحدعدد أيام الحضورعدد أيام الغياب
    {{ data.full_name }}{{ data.mother_fullname }}{{ data.birthday }} ذ أ{{ data.student_id}}{{ data.total_attend }}{{ data.total_absent }}
    + {% endfor %} +
+ + + + diff --git a/student_registration/templates/dashboard/available_documents.html b/student_registration/templates/dashboard/available_documents.html new file mode 100644 index 000000000..70d551493 --- /dev/null +++ b/student_registration/templates/dashboard/available_documents.html @@ -0,0 +1,218 @@ + + +{% load staticfiles i18n %} +{% get_current_language as LANGUAGE_CODE %} +{% load util_tags %} + + + + + + Available Documents + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ الجمهورية اللبنانية +
+ وزارة التربية والتعليم العالي +
+ وحدة إدارة متابعة تنفيذ برنامج التعليم الشامل +
+ PMU +
+
+ + + + +

لوائح بالمستندات الموجودة و الغير موجودة لكل طالب

+
+ +
+
+ + + + + + + + + + + + + + + + + {% for enr in enrollment %} + +
+
+ + + + + + + + + + {% if enr.document_lastyear %} + + {% else %} + + {% endif %} + + {% if enr.student.std_image %} + + {% else %} + + {% endif %} + {%if enr.student.birthdoc_image %} + + {% else %} + + {% endif %} + {% if enr.student.unhcr_image %} + + {% else %} + + {% endif %} + + + + {% endfor %} + +
+ الرقم + + المتسلسل + + الصف الشعبة الإسمإسم الأبالشهرةالجنسرقم compiler الموحدصورة عن التعليم السابقصورة شمسيةصورة عن وثيقة الولادةصورة عن بطاقة العائلة UNHCR
{{ enr.classroom}} {{ enr.section}} {{ enr.student.first_name}}{{ enr.student.father_name}}{{ enr.student.last_name}} {{ enr.student.sex }}{{ enr.student.id }} click here click here click here click here
+ + +
+ + + diff --git a/student_registration/templates/dashboard/exporter.html b/student_registration/templates/dashboard/exporter.html index 8f96a73e1..3fdb446cf 100644 --- a/student_registration/templates/dashboard/exporter.html +++ b/student_registration/templates/dashboard/exporter.html @@ -58,7 +58,8 @@

2nd shift gradings

Export term 1 Export term 2 Export term 3 - Export term 4 + Export term 4-[current year] + Export term 4-[last year] @@ -152,16 +153,178 @@

ALP full data

- - - - - - - - - +
+
+
+
+

Attendances & Absences

+ + + + + + + + + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+

Student's Last Attendance and Absences

+ + +
+
+
+
+
+ +
+
+
+
+

Total of attend and absent days per students

+ + + + + + + + + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+

Total of attend and absent days per students

+ +
+
+
+
+
+ +
+
+
+
+

Daily : Attendances & Absences

+

Export to Excel : Attendances & Absences per day

+ + + + + + + + + + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+
+ + + +
+
+
+
+ + + + + +
+
+
+

De-Generate

+
+ + + +
+
+
diff --git a/student_registration/templates/dashboard/list_justification.html b/student_registration/templates/dashboard/list_justification.html new file mode 100644 index 000000000..06c4ffd6c --- /dev/null +++ b/student_registration/templates/dashboard/list_justification.html @@ -0,0 +1,567 @@ + + +{% load staticfiles i18n %} +{% get_current_language as LANGUAGE_CODE %} +{% load util_tags %} + + + + + Justification List + + + + + +{%for v_school in school %} + + + + + + +
+
+ +
+ +
+ الجمهورية اللبنانية +
+ وزارة التربية والتعليم العالي +
+ وحدة برنامج التعليم الشامل +
+ PMU +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

لائحة بأسماء التلاميذ غير اللبنانيين بحسب الصفوف

+
+
+ + السنة الدراسية + + + {{ education_year }} +
+ + رقم المدرسة في المركز التربوي + + + {{ v_school.number }} +
+ + إسم المدرسة + + + {{ v_school.name }} +
+ + اللغة الأجنبية + + + {{ v_school.certified_foreign_language }} +
+ + الملف + + + {{ last_justificationnumber }} +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ المحافظة + + {{ v_school.location.parent.name }} +
+ القضاء + + {{ v_school.location.name }} +
+ البلدة + + +
+ رقم الهاتف + + {{ v_school.land_phone_number }} +
+ الدوام + + {% if v_school.is_2nd_shift %} + بعد الظهر + {% endif %} + {% if v_school.is_alp %} + - ALP + {% endif %} + +
+
+ +{% endfor %} + + +{% if rep_groupby == 'SECTION' %} + {% regroup enrollment by class_section as v_enrollment %} +
    +{% for class_section in v_enrollment %} + + +
    السنة المنهجية : {{ class_section.grouper }}
    +
    + + + + + + + + + + + + + + + + + {% for enr in class_section.list %} + + + + + {% ifequal enr.student.sex 'Male' %} + + {% endifequal %} + {% ifequal enr.student.sex 'Female' %} + + {% endifequal %} + + + + + + {% ifnotequal enr.last_education_year 'na' %} + + {% else %} + + {% endifnotequal %} + + + {% endfor %} + +
    + # + الإسم الثلاثي / +

    رقم compiler الموحد +
    الجنسمكان الولادة + + + +
    + + + + +
    + + تاريخ الولادة + +
    اليوم الشهرالسنة
    +
    + معلومات عن اّخر سنة دراسية + + + + + + + + +
    اّخر سنة منهجية +
    + / اّخر دورة +
    النتيجةالإفادة المبرزةتاريخ التصديق
    +
    + {% if enr.moved or enr.dropout_status %} + (-) + {% endif %} + + + {{ enr.student.full_name}} +
    + {{ enr.student.id }} +
    ذ أ {{ enr.student.place_of_birth }} + + + + +
    {{ enr.student.birthday_day }} {{ enr.student.birthday_month }} {{ enr.student.birthday_year }}
    +
    + + + + + {% ifequal enr.last_year_result 'graduated'%} + + {% endifequal %} + {% ifequal enr.last_year_result 'failed'%} + + {% endifequal %} + + +
    {{ enr.last_education_year }} {{ enr.last_school.name }} {{ enr.last_education_level }} ناجح/ة معيد/ة {{ enr.documenttype.description2 }} {{enr.signature_cert_date}}
    +
    + + + + + + +
    {{ enr.last_informal_edu_round }} {{ enr.last_informal_edu_final_result }} {{ enr.documenttype.description2 }} {{enr.signature_cert_date}}
    +
    +
    + {% endfor %} +
+
+
+ N.B.: +      +  (-) : تلميذ منتقل/منقطع + +
+{% else %} +
+ {% regroup enrollment by classroom as v_enrollment %} +
    + {% for classroom in v_enrollment %} + +
    + +
    السنة المنهجية : {{ classroom.grouper }}
    +
    + + + + + + + + + + + + {% for enr in classroom.list %} + + + + {% ifequal enr.student.sex 'Male' %} + + {% endifequal %} + {% ifequal enr.student.sex 'Female' %} + + {% endifequal %} + + + {% ifnotequal enr.last_education_year 'na' %} + + {% else %} + + {% endifnotequal %} + + {% endfor %} +
    +
    + # +
    +
    الإسم الثلاثي / +
    +
    رقم compiler الموحد +
    +
    الجنس
    مكان الولادة
    +
    + + + +
    تاريخ الولادة +
    + يوم/شهر/سنة + +
    +
    +
    +
    + معلومات عن اّخر سنة دراسية + + + + + + + +
    اّخر سنة منهجية + / اّخر دورة النتيجةالإفادة المبرزةتاريخ التصديق
    +
    +
    +
    + {% if enr.moved or enr.dropout_status %} + (-) + {% endif %} + {{ enr.student.full_name}}
    {{ enr.student.id }}
    +
    +
    ذ
    أ
    {{ enr.student.place_of_birth }}
    +
    + + + + +
    {{ enr.student.birthday_day }} {{ enr.student.birthday_month }} {{ enr.student.birthday_year }}
    +
    +
    +
    + + + + + {% ifequal enr.last_year_result 'graduated'%} + + {% endifequal %} + {% ifequal enr.last_year_result 'failed'%} + + {% endifequal %} + + +
    {{ enr.last_education_year }} {{ enr.last_school.name }} {{ enr.last_education_level }} ناجح/ة معيد/ة {{ enr.documenttype.description2 }} {{enr.signature_cert_date}}
    +
    +
    +
    + + + + + +
    {{ enr.last_informal_edu_round }} {{ enr.last_informal_edu_final_result }} {{ enr.documenttype.description2 }} {{enr.signature_cert_date}}
    +
    +
    +
    + {% endfor %} +

+
+ N.B.: +      +  (-) : تلميذ منتقل/منقطع + +
+ + +{% endif %} + + +

+ {% for schl in school %} + + + {% endfor %} +
+ + + + + +
+ + + + + + + + + + + + +
+ + أنا الموقع (ة) أدناه + + + + {{ schl.director_name }} + + +
+ مدير(ة) مدرسة   +
+
+ + {{ schl.name}}-دوام   + {% if schl.is_2nd_shift %} + بعد الظهر + {% endif %} + {% if schl.is_alp %} + - ALP + {% endif %} + +
+
+ + أفيد ان التلاميذ المدونة أسماؤهم في هذه اللائحة و عددهم + + +    *** {{ schl.total_registered }} *** + + + يتابعون في مدرستي +

+ وأصرّح على مسؤوليتي أن المعلومات الواردة في هذه اللائحة مطابقة للواقع +
+
+
+ + + + إن مندرجات هذه اللائحة صحيحة و قد دققت على مسؤوليتي + +
+ + + + + + + + + + + + +
+ + + + +
+ ختم المدرسة +
+
+

          +       توقيع المدير +
+ في + {{ current_date|date:"d/m/Y" }} +
+
+

+ +
+ + + + + + diff --git a/student_registration/templates/dashboard/utilities.html b/student_registration/templates/dashboard/utilities.html new file mode 100644 index 000000000..769680f66 --- /dev/null +++ b/student_registration/templates/dashboard/utilities.html @@ -0,0 +1,98 @@ + +{% extends "base.html" %} +{% load staticfiles i18n %} +{% get_current_language as LANGUAGE_CODE %} +{#{% load util_tags %}#} + +{% block extra_head %} + + +{% endblock %} + +{% block content-full-page %} + +{% load util_tags %} + + + + Utilities + + + + + + +
+
+
+
+
+
+
+

Students list

+

Generate the justification number for the school and lock the data

+ +

+ +
+
+ نسخة اللوائح الاسمية النهائية للمنطقة التربوية (للتبرير) +


+
+ + عند الضغط على هذا الزر, يصار الى خلق رقم ملف و من ثمّ عليك إعادة طباعة التقرير حسب الصف لتسليمها للمنطقة التربوية + +
+

+ + + + + + +
+
+
+ +
+
+
+
+ + + + +
+
+
+ + + + +{% endblock %} diff --git a/student_registration/templates/django_tables2/clm_assessment_column.html b/student_registration/templates/django_tables2/clm_assessment_column.html new file mode 100644 index 000000000..bf7582ff5 --- /dev/null +++ b/student_registration/templates/django_tables2/clm_assessment_column.html @@ -0,0 +1,7 @@ +{% load staticfiles i18n %} +{% load util_tags %} + + + + {% trans "Post-Assessment" %} + diff --git a/student_registration/templates/django_tables2/clm_delete_column.html b/student_registration/templates/django_tables2/clm_delete_column.html new file mode 100644 index 000000000..080d11e4f --- /dev/null +++ b/student_registration/templates/django_tables2/clm_delete_column.html @@ -0,0 +1,10 @@ +{% load staticfiles i18n %} +{% load util_tags %} +{% if record.owner.id == request.user.id and column.attrs.programme|is_allowed_edit %} + +{% else %} + {% trans "Not allowed" %} +{% endif %} diff --git a/student_registration/templates/django_tables2/clm_edit_column.html b/student_registration/templates/django_tables2/clm_edit_column.html new file mode 100644 index 000000000..190608ed7 --- /dev/null +++ b/student_registration/templates/django_tables2/clm_edit_column.html @@ -0,0 +1,10 @@ +{% load staticfiles i18n %} +{% load util_tags %} +{% if column.attrs.programme|is_allowed_edit %} + + + {% trans "Edit" %} + +{% else %} + {% trans "Not allowed" %} +{% endif %} diff --git a/student_registration/templates/django_tables2/clm_followup_column.html b/student_registration/templates/django_tables2/clm_followup_column.html new file mode 100644 index 000000000..450ae0900 --- /dev/null +++ b/student_registration/templates/django_tables2/clm_followup_column.html @@ -0,0 +1,7 @@ +{% load staticfiles i18n %} +{% load util_tags %} + + + + {% trans "Follow-up" %} + diff --git a/student_registration/templates/django_tables2/clm_re_enroll_column.html b/student_registration/templates/django_tables2/clm_re_enroll_column.html new file mode 100644 index 000000000..1a08efc1d --- /dev/null +++ b/student_registration/templates/django_tables2/clm_re_enroll_column.html @@ -0,0 +1,10 @@ +{% load staticfiles i18n %} +{% load util_tags %} +{% if column.attrs.programme|is_allowed_create %} + + + {% trans "Re-enroll" %} + +{% else %} + {% trans "Not allowed" %} +{% endif %} diff --git a/student_registration/templates/django_tables2/clm_referral_column.html b/student_registration/templates/django_tables2/clm_referral_column.html new file mode 100644 index 000000000..320e83705 --- /dev/null +++ b/student_registration/templates/django_tables2/clm_referral_column.html @@ -0,0 +1,7 @@ +{% load staticfiles i18n %} +{% load util_tags %} + + + + {% trans "Refer" %} + diff --git a/student_registration/templates/django_tables2/dropout_column.html b/student_registration/templates/django_tables2/dropout_column.html new file mode 100644 index 000000000..ea2933b95 --- /dev/null +++ b/student_registration/templates/django_tables2/dropout_column.html @@ -0,0 +1,13 @@ +{% load staticfiles i18n %} + +
+ + + +
diff --git a/student_registration/templates/django_tables2/grading_incomplete_column.html b/student_registration/templates/django_tables2/grading_incomplete_column.html index f5f13d05e..023ffd49b 100644 --- a/student_registration/templates/django_tables2/grading_incomplete_column.html +++ b/student_registration/templates/django_tables2/grading_incomplete_column.html @@ -1,6 +1,6 @@ {% load staticfiles i18n %} {% load util_tags %} -{% if request.user|has_group:"ENROL_GRADING" and record.incomplete_grading %} +{% if request.user|has_group:"ENROL_GRADING" and record.incomplete_grading %} {% trans "Incomplete" %} diff --git a/student_registration/templates/django_tables2/is_verified.html b/student_registration/templates/django_tables2/is_verified.html new file mode 100644 index 000000000..5c5d02f37 --- /dev/null +++ b/student_registration/templates/django_tables2/is_verified.html @@ -0,0 +1,21 @@ +{% load staticfiles i18n %} + + +{% if record.is_justified %} + +{% else %} + +{% endif %} + diff --git a/student_registration/templates/enrollments/clear_images.html b/student_registration/templates/enrollments/clear_images.html new file mode 100644 index 000000000..3a75dfa13 --- /dev/null +++ b/student_registration/templates/enrollments/clear_images.html @@ -0,0 +1,88 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load util_tags %} +{% load static %} +{% load bootstrap3 %} +{% bootstrap_css %} +{% load render_table from django_tables2 %} + +{% get_current_language as LANGUAGE_CODE %} + + +{% block extra_head %} + + +{% endblock %} +{% block content-full-page %} + + + + + + + +

{% trans 'Modifying Images' %}

+

{{ student_images.student }}

+
+
{% csrf_token %} + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +{% endblock %} diff --git a/student_registration/templates/enrollments/edit_column.html b/student_registration/templates/enrollments/edit_column.html index 62987c0e8..e0b31b30a 100644 --- a/student_registration/templates/enrollments/edit_column.html +++ b/student_registration/templates/enrollments/edit_column.html @@ -1,10 +1,12 @@ {% load staticfiles i18n %} {% load util_tags %} -{% if record.owner.id == request.user.id and request.user|has_group:"ENROL_EDIT" %} -
- - {% trans "Edit" %} - -{% else %} - {% trans "Not allowed" %} -{% endif %} + + {% if record.owner.id == request.user.id and request.user|has_group:"ENROL_EDIT" %} + + + {% trans "Edit" %} + + {% else %} + {% trans "Not allowed" %} + {% endif %} + diff --git a/student_registration/templates/enrollments/edit_column_region.html b/student_registration/templates/enrollments/edit_column_region.html new file mode 100644 index 000000000..6f14762b1 --- /dev/null +++ b/student_registration/templates/enrollments/edit_column_region.html @@ -0,0 +1,14 @@ +{% load staticfiles i18n %} +{% load util_tags %} +{% if request.user|has_group:"ADMIN_RE" %} + + {% if request.user|has_group:"ENROL_EDIT" %} + + + {% trans "Edit" %} + + {% else %} + {% trans "Not allowed" %} + {% endif %} + +{% endif %} diff --git a/student_registration/templates/enrollments/list.html b/student_registration/templates/enrollments/list.html index aa1f0fda1..74dd4c03a 100644 --- a/student_registration/templates/enrollments/list.html +++ b/student_registration/templates/enrollments/list.html @@ -12,15 +12,14 @@ {% endblock %} {% block content-full-page-ar %} - + {% if not request.user|has_group:"ADMIN_RE" %} - - + {% endif %}
{% bootstrap_form filter.form layout='inline' %} @@ -78,6 +78,7 @@ {% endblock %} diff --git a/student_registration/templates/enrollments/modifying_images.html b/student_registration/templates/enrollments/modifying_images.html new file mode 100644 index 000000000..143895346 --- /dev/null +++ b/student_registration/templates/enrollments/modifying_images.html @@ -0,0 +1,196 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load util_tags %} +{% load static %} +{% load bootstrap3 %} +{% bootstrap_css %} +{% load render_table from django_tables2 %} + +{% get_current_language as LANGUAGE_CODE %} + + +{% block extra_head %} + + +{% endblock %} +{% block content-full-page %} + + + + + + + +{% for std in student_images %} +

{% trans 'Modifying Images' %}

+

{{ std.student }}

+
+ + + {% csrf_token %} + + + + + + + + + + + + +
+ +
+ {% if std.student.std_image %} + + {% endif %} +

+
+ + +
{% csrf_token %} + + +
+ +
+ + +
+ + + {% csrf_token %} + + + + + + + + + + +
+ +
+ + + + +
+ + +
+ {% if std.student.birthdoc_image %} + + {% endif %} +

+
+ + +
{% csrf_token %} + + + +
+ + +
+ +
+ + {% csrf_token %} + + + + + + + + + + + +
+ +
+ {% if std.student.unhcr_image %} + + {% endif %} +

+
+ + +
{% csrf_token %} + + +
+ +
+
+ + + + {% csrf_token %} + + + + + + + + + + + + +
+
+ +
+ {% if std.document_lastyear %} + + {% endif %} +
+ +
+
+ + + +
{% csrf_token %} + + +
+ +
+ +{% endfor %} + +{% endblock %} diff --git a/student_registration/templates/enrollments/student_profile.html b/student_registration/templates/enrollments/student_profile.html new file mode 100644 index 000000000..cbdb79994 --- /dev/null +++ b/student_registration/templates/enrollments/student_profile.html @@ -0,0 +1,29 @@ +{% load staticfiles i18n %} +{% load util_tags %} + +{% if request.user|has_group:"ENROL_SHOWPIC" %} + + + {% if record.student.std_image %} + + {% else %} + + {% trans "Images" %} + {% endif %} + + +{% endif %} + +{% if request.user|has_group:"ENROL_CLEARPIC" %} + + + + + {% trans "Clear Pic" %} + + +{% endif %} + + + + diff --git a/student_registration/templates/header.html b/student_registration/templates/header.html index d11ef0ed3..f49b3152f 100644 --- a/student_registration/templates/header.html +++ b/student_registration/templates/header.html @@ -2,6 +2,43 @@ {% get_current_language as LANGUAGE_CODE %} {% load util_tags %} + + + + + diff --git a/student_registration/templates/helpdesk/base.html b/student_registration/templates/helpdesk/base.html new file mode 100644 index 000000000..ec37958cc --- /dev/null +++ b/student_registration/templates/helpdesk/base.html @@ -0,0 +1,77 @@ +{% load i18n %} +{% load saved_queries %} +{% load load_helpdesk_settings %} +{% load static from staticfiles %} +{% with request|load_helpdesk_settings as helpdesk_settings %} +{% with user|saved_queries as user_saved_queries_ %} + + + + {% block helpdesk_title %}Helpdesk{% endblock %} :: {% trans "Powered by django-helpdesk" %} + + + + + + + + + {% if helpdesk_settings.HELPDESK_USE_CDN %} + + + {% else %} + + + {% endif %} + + + + + + + + + {% block helpdesk_head %}{% endblock %} + + +
+ + +
+ {% block helpdesk_body %}{% endblock %} +
+ + +
+ {% include "helpdesk/debug.html" %} + + +{% endwith %} +{% endwith %} diff --git a/student_registration/templates/helpdesk/report_index.html b/student_registration/templates/helpdesk/report_index.html new file mode 100644 index 000000000..e149a3943 --- /dev/null +++ b/student_registration/templates/helpdesk/report_index.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + diff --git a/student_registration/templates/helpdesk/usermonth.html b/student_registration/templates/helpdesk/usermonth.html new file mode 100644 index 000000000..e149a3943 --- /dev/null +++ b/student_registration/templates/helpdesk/usermonth.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + diff --git a/student_registration/templates/schools/classform.html b/student_registration/templates/schools/classform.html new file mode 100644 index 000000000..b16d4232c --- /dev/null +++ b/student_registration/templates/schools/classform.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load crispy_forms_tags %} +{% load util_tags %} + +{% block head_title %}School profile{% endblock %} + + +{% block content %} + + + {{ form.errors }} +
+ {% csrf_token %} + {% crispy form %} +
+ + +{% endblock %} diff --git a/student_registration/templates/schools/evaluation b/student_registration/templates/schools/evaluation new file mode 100644 index 000000000..e69de29bb diff --git a/student_registration/templates/schools/evaluation.html b/student_registration/templates/schools/evaluation.html new file mode 100644 index 000000000..4afd9e014 --- /dev/null +++ b/student_registration/templates/schools/evaluation.html @@ -0,0 +1,21 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load crispy_forms_tags %} +{% load util_tags %} + +{% block head_title %}School profile{% endblock %} + + + + + + +{% block content %} + + {{ form.errors }} +
{% csrf_token %} + {% crispy form %} +
+ + +{% endblock %} diff --git a/student_registration/templates/schools/profile.html b/student_registration/templates/schools/profile.html index 1ddd28c5a..88ffffc7a 100644 --- a/student_registration/templates/schools/profile.html +++ b/student_registration/templates/schools/profile.html @@ -194,6 +194,7 @@
$('#id_academic_year_exam_end').datepicker({dateFormat: "yy-mm-dd"}); var notification_url = '/api/notifications/'; var user_token = '{{ user_token }}'; + var href_full_path = '{{ request.build_absolute_uri }}'; var csrftoken = $('input[name=csrfmiddlewaretoken]').val(); $(document).ready(function() { diff --git a/student_registration/templates/staffenroll/delete_column.html b/student_registration/templates/staffenroll/delete_column.html new file mode 100644 index 000000000..5910c2ea9 --- /dev/null +++ b/student_registration/templates/staffenroll/delete_column.html @@ -0,0 +1,10 @@ +{% load staticfiles i18n %} +{% load util_tags %} +{% if record.owner.id == request.user.id and request.user|has_group:"STAFFENROL_DELETE" %} + +{% else %} + {% trans "Not allowed" %} +{% endif %} diff --git a/student_registration/templates/staffenroll/edit_column.html b/student_registration/templates/staffenroll/edit_column.html new file mode 100644 index 000000000..168d90eee --- /dev/null +++ b/student_registration/templates/staffenroll/edit_column.html @@ -0,0 +1,10 @@ +{% load staticfiles i18n %} +{% load util_tags %} +{% if record.owner.id == request.user.id and request.user|has_group:"STAFFENROL_EDIT" %} + + + {% trans "Edit" %} + +{% else %} + {% trans "Not allowed" %} +{% endif %} diff --git a/student_registration/templates/staffenroll/list.html b/student_registration/templates/staffenroll/list.html new file mode 100644 index 000000000..ddd34e6b3 --- /dev/null +++ b/student_registration/templates/staffenroll/list.html @@ -0,0 +1,97 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load util_tags %} +{% load static %} +{% load render_table from django_tables2 %} +{% load bootstrap3 %} +{% bootstrap_css %} + +{% block extra_head %} + + +{% endblock %} + +{% block content-full-page-ar %} + + + +
+
+ + + {% bootstrap_button _('Add New') button_type="link" button_class="btn-success" href='/staffs/add/' %} + {% bootstrap_button _('filter') button_class="btn-primary" %} + {% bootstrap_button _('reset') button_type="link" button_class="btn-warning" href='/staffenroll/list/' %} +
+
+
+ {% csrf_token %} + {% render_table table 'django_tables2/bootstrap.html' %} +
+ +{% endblock %} + +{% block extra_js %} + {% get_user_token request.user.id as user_token %} + + + + + + +{% endblock %} diff --git a/student_registration/templates/staffs/list.html b/student_registration/templates/staffs/list.html new file mode 100644 index 000000000..4eec656e0 --- /dev/null +++ b/student_registration/templates/staffs/list.html @@ -0,0 +1,100 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load util_tags %} +{% load static %} +{% load render_table from django_tables2 %} +{% load bootstrap3 %} +{% bootstrap_css %} + +{% block extra_head %} + + +{% endblock %} + +{% block content-full-page-ar %} + + + + +
+
+ {% bootstrap_form filter.form layout='inline' %} + {% bootstrap_button _('filter') button_class="btn-primary" %} + {% bootstrap_button _('reset') button_type="link" button_class="btn-warning" href='/enrollments/list/' %} +
+
+
+ {% csrf_token %} + {% render_table table 'django_tables2/bootstrap.html' %} +
+ +{% endblock %} + +{% block extra_js %} + {% get_user_token request.user.id as user_token %} + + + + + + +{% endblock %} diff --git a/student_registration/templates/staffs/staff_form.html b/student_registration/templates/staffs/staff_form.html new file mode 100644 index 000000000..949569c9d --- /dev/null +++ b/student_registration/templates/staffs/staff_form.html @@ -0,0 +1,35 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load util_tags %} +{% load static %} +{% load bootstrap3 %} +{% bootstrap_css %} +{% load render_table from django_tables2 %} + +{% block content %} + + +

+ + Staff Form + + +

+
+ + + +
+
+ + {% csrf_token %} + + {{ form.as_table }} +
+
+ +
+
+ + +{% endblock %} diff --git a/student_registration/templates/staffs/staff_update_form.html b/student_registration/templates/staffs/staff_update_form.html new file mode 100644 index 000000000..44d53a845 --- /dev/null +++ b/student_registration/templates/staffs/staff_update_form.html @@ -0,0 +1,35 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load util_tags %} +{% load static %} +{% load bootstrap3 %} +{% bootstrap_css %} +{% load render_table from django_tables2 %} + + +{% block extra_head %} + +
+ + + {{ title }} + + + +{% endblock %} + + +{% block content %} + +
+ {% csrf_token %} + + + {{ form.as_table }} +
+ + + Cancel +
+ +{% endblock %} diff --git a/student_registration/templates/staffs/stafflist.html b/student_registration/templates/staffs/stafflist.html new file mode 100644 index 000000000..02f27bc1d --- /dev/null +++ b/student_registration/templates/staffs/stafflist.html @@ -0,0 +1,93 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load util_tags %} +{% load static %} +{% load bootstrap3 %} +{% bootstrap_css %} +{% load render_table from django_tables2 %} + + +{% block extra_head %} + + +{% endblock %} +{% block content-full-page-ar %} +
+
+ + +
+ +
+ +
+ + + + + + + + + + + + {% for staff in staff_list %} + + + + + + + + + + {% endfor %} +
First NameFather NameLast NameID NumberImage
+ + {{staff.first_name}} + + + + {{staff.father_name}} + + + {{staff.last_name}} + + {{staff.id_number}} + + +
+ +
+ + +{% endblock %} + diff --git a/student_registration/templates/students/imagestd.html b/student_registration/templates/students/imagestd.html new file mode 100644 index 000000000..7d511d83a --- /dev/null +++ b/student_registration/templates/students/imagestd.html @@ -0,0 +1,143 @@ +{% extends "base.html" %} +{% load staticfiles i18n %} +{% load util_tags %} +{% load static %} +{% load bootstrap3 %} +{% bootstrap_css %} +{% load render_table from django_tables2 %} + +{% get_current_language as LANGUAGE_CODE %} + + +{% block extra_head %} + + +{% endblock %} +{% block content-full-page %} + + + + + +
{% csrf_token %} +

{{ student_detail }}

+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+   {% trans 'Profile Picture' %} + + +
+
+ +
+ {% trans 'The name of file should not be in arabic' %} +
+
+ {% if student_detail.std_image %} + + + {% endif %} +
+ + + + +

+ + {{ form.birth_documenttype }} + +
+ +
+
+
+
+ +
+ {% trans 'The name of file should not be in arabic' %} +
+
+ + {% if student_detail.birthdoc_image %} + + {% endif %} +
+ +   {% trans 'UNHCR picture' %} + + +
+
+ +
+ {% trans 'The name of file should not be in arabic' %} +
+
+ {% if student_detail.unhcr_image %} + + {% endif %} +
+ +
+
+ + +
+
+ + +
+ +{% endblock %} diff --git a/student_registration/templates/students/save.html b/student_registration/templates/students/save.html new file mode 100644 index 000000000..e8e43cf68 --- /dev/null +++ b/student_registration/templates/students/save.html @@ -0,0 +1,13 @@ + + + + {% if saved %} + Your profile was saved. + {% endif %} + + {% if not saved %} + Your profile was not saved. + {% endif %} + + + diff --git a/student_registration/users/admin.py b/student_registration/users/admin.py index 03c3ffe2e..247c9b9c5 100644 --- a/student_registration/users/admin.py +++ b/student_registration/users/admin.py @@ -2,15 +2,34 @@ from __future__ import absolute_import, unicode_literals from django.contrib import admin +from import_export import resources, fields +from import_export import fields +from import_export.admin import ImportExportModelAdmin from django.utils.translation import gettext, gettext_lazy as _ from django.contrib.auth.admin import UserAdmin as AuthUserAdmin from django.contrib.auth.models import Group from .models import User -class UserAdmin(AuthUserAdmin): +class UserResource(resources.ModelResource): - filter_horizontal = ('groups', 'user_permissions', 'locations', 'schools') + class Meta: + model = User + fields = ( + 'id', + 'first_name', + 'last_name', + 'username', + 'email', + 'partner__name', + ) + export_order = fields + + +class UserAdmin(AuthUserAdmin, ImportExportModelAdmin): + resource_class = UserResource + + filter_horizontal = ('groups', 'user_permissions', 'locations', 'schools', 'regions') list_display = ( 'username', 'first_name', @@ -32,6 +51,7 @@ class UserAdmin(AuthUserAdmin): 'groups', 'school', 'location', + 'partner', 'is_active', ) actions = ( @@ -51,6 +71,18 @@ class UserAdmin(AuthUserAdmin): 'deny_attendance', 'allow_helpdesk', 'deny_helpdesk', + 'allow_utilities', + 'deny_utilities', + 'allow_showpic', + 'deny_showpic', + 'allow_clearpic', + 'deny_clearpic', + 'allow_evalcovid19', + 'deny_evalcovid19', + 'allow_staff_attendance', + 'deny_staff_attendance', + 'allow_survey_ps', + 'deny_survey_ps', ) fieldsets = ( @@ -59,7 +91,7 @@ class UserAdmin(AuthUserAdmin): (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}), (_('Important dates'), {'fields': ('last_login', 'date_joined')}), - (None, {'fields': ('partner', 'location', 'school', 'locations', 'schools')}) + (None, {'fields': ('partner', 'location', 'school', 'locations', 'schools', 'regions')}) ) add_fieldsets = ( @@ -68,7 +100,7 @@ class UserAdmin(AuthUserAdmin): (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}), (_('Important dates'), {'fields': ('last_login', 'date_joined')}), - (None, {'fields': ('partner', 'location', 'school', 'locations', 'schools')}) + (None, {'fields': ('partner', 'location', 'school', 'locations', 'schools', 'regions')}) ) def activate(self, request, queryset): @@ -103,6 +135,36 @@ def allow_enroll_grading(self, request, queryset): for user in queryset: user.groups.add(group) + def allow_utilities(self, request, queryset): + group = Group.objects.get(name='UTILITIES') + for user in queryset: + user.groups.add(group) + + def allow_showpic(self, request, queryset): + group = Group.objects.get(name='ENROL_SHOWPIC') + for user in queryset: + user.groups.add(group) + + def allow_staff_evalcovid19(self, request, queryset): + group = Group.objects.get(name='EVAL_COVID19') + for user in queryset: + user.groups.add(group) + + def allow_staff_attendance(self, request, queryset): + group = Group.objects.get(name='ALLOW_STAFF_ATTENDANCE') + for user in queryset: + user.groups.add(group) + + def allow_survey_ps(self, request, queryset): + group = Group.objects.get(name='SURVEY_PS') + for user in queryset: + user.groups.add(group) + + def allow_clearpic(self, request, queryset): + group = Group.objects.get(name='ENROL_CLEARPIC') + for user in queryset: + user.groups.add(group) + def allow_attendance(self, request, queryset): group = Group.objects.get(name='ATTENDANCE') for user in queryset: @@ -133,11 +195,41 @@ def deny_enroll_grading(self, request, queryset): for user in queryset: user.groups.remove(group) + def deny_clearpic(self, request, queryset): + group = Group.objects.get(name='ENROL_CLEARPIC') + for user in queryset: + user.groups.remove(group) + + def deny_utilities(self, request, queryset): + group = Group.objects.get(name='UTILITIES') + for user in queryset: + user.groups.remove(group) + + def deny_showpic(self, request, queryset): + group = Group.objects.get(name='ENROL_SHOWPIC') + for user in queryset: + user.groups.remove(group) + + def deny_evalcovid19(self, request, queryset): + group = Group.objects.get(name='EVAL_COVID19') + for user in queryset: + user.groups.remove(group) + def deny_attendance(self, request, queryset): group = Group.objects.get(name='ATTENDANCE') for user in queryset: user.groups.remove(group) + def deny_staff_attendance(self, request, queryset): + group = Group.objects.get(name='ALLOW_STAFF_ATTENDANCE') + for user in queryset: + user.groups.remove(group) + + def deny_survey_ps(self, request, queryset): + group = Group.objects.get(name='SURVEY_PS') + for user in queryset: + user.groups.remove(group) + def allow_helpdesk(self, request, queryset): group = Group.objects.get(name='HELPDESK') for user in queryset: @@ -150,6 +242,22 @@ def deny_helpdesk(self, request, queryset): user.groups.remove(group) queryset.update(is_staff=False) + def allow_staffenroll_create(self, request, queryset): + group = Group.objects.get(name='STAFFENROL_CREATE') + for user in queryset: + user.groups.add(group) + + def allow_staffenroll_edit(self, request, queryset): + group = Group.objects.get(name='STAFFENROL_EDIT') + for user in queryset: + user.groups.add(group) + + def allow_staffenroll_delete(self, request, queryset): + group = Group.objects.get(name='STAFFENROL_DELETE') + for user in queryset: + user.groups.add(group) + + admin.site.register(User, UserAdmin) diff --git a/student_registration/users/migrations/0010_login.py b/student_registration/users/migrations/0010_login.py new file mode 100644 index 000000000..fb8652b6b --- /dev/null +++ b/student_registration/users/migrations/0010_login.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-25 07:02 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0042_setup'), + ('users', '0009_auto_20170731_2134'), + ] + + operations = [ + migrations.CreateModel( + name='Login', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('active', models.BooleanField(default=True)), + ('education_year', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='schools.EducationYear', verbose_name='Education year')), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')), + ], + ), + ] diff --git a/student_registration/users/migrations/0011_auto_20191125_0908.py b/student_registration/users/migrations/0011_auto_20191125_0908.py new file mode 100644 index 000000000..e95852bbc --- /dev/null +++ b/student_registration/users/migrations/0011_auto_20191125_0908.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2019-11-25 07:08 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0010_login'), + ] + + operations = [ + migrations.AlterModelOptions( + name='login', + options={'verbose_name_plural': 'Login'}, + ), + ] diff --git a/student_registration/users/migrations/0012_user_regions.py b/student_registration/users/migrations/0012_user_regions.py new file mode 100644 index 000000000..df520ab97 --- /dev/null +++ b/student_registration/users/migrations/0012_user_regions.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-02 22:25 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('locations', '0006_auto_20191219_1302'), + ('users', '0011_auto_20191125_0908'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='regions', + field=models.ManyToManyField(blank=True, related_name='regions', to='locations.Location'), + ), + ] diff --git a/student_registration/users/migrations/0013_user_staff_password.py b/student_registration/users/migrations/0013_user_staff_password.py new file mode 100644 index 000000000..e3a22092b --- /dev/null +++ b/student_registration/users/migrations/0013_user_staff_password.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2020-03-18 07:33 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0012_user_regions'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='staff_password', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='staff password'), + ), + ] diff --git a/student_registration/users/models.py b/student_registration/users/models.py index 46674d2f2..5fa15e81f 100644 --- a/student_registration/users/models.py +++ b/student_registration/users/models.py @@ -6,10 +6,9 @@ from django.db import models from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from student_registration.schools.models import PartnerOrganization, School +from student_registration.schools.models import PartnerOrganization,EducationYear, School from student_registration.locations.models import Location - @python_2_unicode_compatible class User(AbstractUser): @@ -39,7 +38,13 @@ class User(AbstractUser): ) locations = models.ManyToManyField(Location, blank=True) schools = models.ManyToManyField(School, blank=True) - + regions = models.ManyToManyField(Location, blank=True, related_name='regions') + staff_password = models.CharField( + _('staff password'), + max_length=255, + null=True, + blank=True + ) def __str__(self): return self.username @@ -48,3 +53,28 @@ def update_password(self, password): def get_absolute_url(self): return reverse('users:detail', kwargs={'username': self.username}) + + +class Login(models.Model): + user = models.ForeignKey( + User, + blank=True, null=True, + verbose_name=_('User') + ) + education_year = models.ForeignKey( + EducationYear, + blank=True, null=True, + related_name='+', + verbose_name=_('Education year') + ) + active = models.BooleanField(default=True) + + def __unicode__(self): + + return u'{} {}'.format( + self.user, + self.education_year, + ) + + class Meta: + verbose_name_plural = "Login" diff --git a/student_registration/winterization/admin.py b/student_registration/winterization/admin.py index e26117b19..382c82552 100644 --- a/student_registration/winterization/admin.py +++ b/student_registration/winterization/admin.py @@ -3,7 +3,7 @@ from import_export import resources, fields from import_export import fields from import_export.admin import ImportExportModelAdmin -from import_export.widgets import * +# from import_export.widgets import * from .models import Assessment diff --git a/student_registration/xframe_middleware.py b/student_registration/xframe_middleware.py new file mode 100755 index 000000000..9a5c47da3 --- /dev/null +++ b/student_registration/xframe_middleware.py @@ -0,0 +1,11 @@ +class XFrameMiddleware: + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + response = self.get_response(request) + + if request.is_secure: + response['X-Frame-Options'] = 'DENY' + + return response