class Migration(migrations.Migration): dependencies = [ ('data', '0014_auto_20201209_1146'), ] operations = [ migrations.AlterField( model_name='items', name='carrying_cost', field=models.PositiveIntegerField( default='15', help_text='Enter as percentage of unit cost', validators=[data.models.validate_even]), ), migrations.AlterField( model_name='items', name='lead_time', field=models.PositiveIntegerField( blank=True, default='5', null=True, validators=[data.models.validate_zero]), ), migrations.AlterField( model_name='items', name='service_level', field=models.PositiveIntegerField( blank=True, default='95', null=True, validators=[data.models.validate_even]), ), ]
class Migration(migrations.Migration): dependencies = [ ('data', '0004_items_no_of_workingdays'), ] operations = [ migrations.AddField( model_name='items', name='z', field=models.DecimalField(blank=True, decimal_places=3, default='0', max_digits=4, null=True), ), migrations.AlterField( model_name='items', name='carrying_cost', field=models.PositiveIntegerField( default='0', help_text='Enter as percentage of unit cost', validators=[data.models.validate_even]), ), ]
class Migration(migrations.Migration): dependencies = [ ('data', '0013_auto_20201209_1145'), ] operations = [ migrations.AlterField( model_name='items', name='service_level', field=models.PositiveIntegerField( blank=True, default='0', null=True, validators=[data.models.validate_even]), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='CpuData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=128)), ('cores', models.CharField(blank=True, max_length=32)), ], options={ 'ordering': ('name', 'cores'), }, bases=(data.models.FromLuaMixin, models.Model), ), migrations.CreateModel( name='EngineData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('buildFlags', models.CharField(blank=True, max_length=1024)), ('version', models.CharField(blank=True, max_length=64)), ('versionFull', models.CharField(blank=True, max_length=128)), ('versionPatchSet', models.CharField(blank=True, max_length=32)), ('wordSize', models.PositiveIntegerField(blank=True, null=True)), ], options={ 'ordering': ('versionFull', 'versionPatchSet'), }, bases=(data.models.FromLuaMixin, models.Model), ), migrations.CreateModel( name='GlData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('glRenderer', models.CharField(blank=True, max_length=256)), ('glVendor', models.CharField(blank=True, max_length=256)), ('glVersion', models.CharField(blank=True, max_length=256)), ('glVersionShort', models.CharField(blank=True, max_length=128)), ('glewVersion', models.CharField(blank=True, max_length=256)), ('glslVersion', models.CharField(blank=True, max_length=256)), ('glslVersionShort', models.CharField(blank=True, max_length=128)), ('glSupportNonPowerOfTwoTex', models.NullBooleanField()), ('glSupportTextureQueryLOD', models.NullBooleanField()), ('glSupport24bitDepthBuffer', models.NullBooleanField()), ('glSupportRestartPrimitive', models.NullBooleanField()), ('glSupportClipSpaceControl', models.NullBooleanField()), ('glSupportFragDepthLayout', models.NullBooleanField()), ], options={ 'ordering': ('glRenderer', 'glVersion'), }, bases=(data.models.FromLuaMixin, models.Model), ), migrations.CreateModel( name='GpuData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('gpu', models.CharField(blank=True, max_length=256)), ('gpuMemorySize', models.PositiveIntegerField(blank=True, null=True)), ('gpuVendor', models.CharField(blank=True, max_length=256)), ], options={ 'ordering': ('gpuVendor', 'gpu', 'gpuMemorySize'), }, bases=(data.models.FromLuaMixin, models.Model), ), migrations.CreateModel( name='MachineData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('account', models.CharField(max_length=128)), ('updated', models.DateTimeField(auto_now=True)), ('ram', models.PositiveIntegerField(blank=True)), ('cpu', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='data.CpuData')), ('engine_data', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='data.EngineData')), ('gl_data', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='data.GlData')), ('gpu_data', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='data.GpuData')), ], options={ 'ordering': ('-updated', ), }, ), migrations.CreateModel( name='OsData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('osFamily', models.CharField(max_length=32)), ('osName', models.CharField(blank=True, max_length=256)), ], options={ 'ordering': ('osFamily', 'osName'), }, ), migrations.CreateModel( name='PlatformData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('attribute', models.CharField(max_length=128)), ('value', models.CharField(max_length=1024)), ], options={ 'ordering': ('attribute', ), }, ), migrations.CreateModel( name='ScreenData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('resolution_x', models.PositiveSmallIntegerField(blank=True, null=True)), ('resolution_y', models.PositiveSmallIntegerField(blank=True, null=True)), ('color_depth', models.PositiveSmallIntegerField(blank=True, null=True)), ('refresh_rate', models.PositiveSmallIntegerField(blank=True, null=True)), ('windowed', models.NullBooleanField()), ], options={ 'ordering': ('resolution_x', 'resolution_y', 'color_depth'), }, bases=(data.models.FromLuaMixin, models.Model), ), migrations.CreateModel( name='SDLData', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sdlVersionCompiledMajor', models.PositiveSmallIntegerField(blank=True, null=True)), ('sdlVersionCompiledMinor', models.PositiveSmallIntegerField(blank=True, null=True)), ('sdlVersionCompiledPatch', models.PositiveSmallIntegerField(blank=True, null=True)), ('sdlVersionLinkedMajor', models.PositiveSmallIntegerField(blank=True, null=True)), ('sdlVersionLinkedMinor', models.PositiveSmallIntegerField(blank=True, null=True)), ('sdlVersionLinkedPatch', models.PositiveSmallIntegerField(blank=True, null=True)), ], bases=(data.models.FromLuaMixin, models.Model), ), migrations.AlterUniqueTogether( name='sdldata', unique_together=set([ ('sdlVersionCompiledMajor', 'sdlVersionCompiledMinor', 'sdlVersionCompiledPatch', 'sdlVersionLinkedMajor', 'sdlVersionLinkedMinor', 'sdlVersionLinkedPatch') ]), ), migrations.AlterUniqueTogether( name='screendata', unique_together=set([('resolution_x', 'resolution_y', 'color_depth', 'refresh_rate', 'windowed')]), ), migrations.AddField( model_name='machinedata', name='os', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to='data.OsData'), ), migrations.AddField( model_name='machinedata', name='platform_data', field=models.ManyToManyField(to='data.PlatformData'), ), migrations.AddField( model_name='machinedata', name='screen_data', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='data.ScreenData'), ), migrations.AddField( model_name='machinedata', name='sdl_data', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='data.SDLData'), ), migrations.AlterUniqueTogether( name='cpudata', unique_together=set([('name', 'cores')]), ), migrations.AlterUniqueTogether( name='machinedata', unique_together=set([('account', 'cpu', 'os')]), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0009_alter_user_last_name_max_length'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField( default=False, help_text= 'Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('username', models.CharField( error_messages={ 'unique': 'A user with that username already exists.' }, help_text= 'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[ django.contrib.auth.validators. UnicodeUsernameValidator() ], verbose_name='username')), ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), ('is_staff', models.BooleanField( default=False, help_text= 'Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField( default=True, help_text= 'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(auto_now_add=True, null=True)), ('bupt_id', models.CharField(default=data.models.default_bupt_id, max_length=10, unique=True)), ('name', models.TextField(default='')), ('email', models.EmailField(max_length=254, unique=True)), ('phone', models.CharField(default=data.models.default_phone, max_length=11, unique=True)), ('gender', models.CharField(choices=[('male', 'male'), ('female', 'female')], default='male', max_length=6)), ('usertype', models.CharField(choices=[('student', 'student'), ('teacher', 'teacher'), ('assistant', 'assistant')], default='student', max_length=20)), ('class_number', models.CharField(default='noClass', max_length=10)), ('wechat', models.TextField(null=True)), ('forgotten', models.BooleanField(default=False)), ('groups', models.ManyToManyField( blank=True, help_text= 'The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), ('user_permissions', models.ManyToManyField( blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), ], options={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( name='HWFAssignment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.TextField()), ('description', models.TextField(blank=True, null=True)), ('assignment_type', models.CharField(choices=[('image', 'image'), ('docs', 'docs'), ('vary', 'vary')], default='vary', max_length=20)), ('start_time', models.DateTimeField(default='2019-01-01T00:00:00+00:00')), ('deadline', models.DateTimeField()), ('weight', models.FloatField(default=0.0)), ], ), migrations.CreateModel( name='HWFCourseClass', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.TextField()), ('description', models.TextField(blank=True, null=True)), ('marks', models.FloatField(default=0.0)), ('school', models.TextField(blank=True, null=True)), ('start_time', models.DateTimeField(blank=True, null=True)), ('end_time', models.DateTimeField(blank=True, null=True)), ('students', models.ManyToManyField(blank=True, related_name='students_course', to=settings.AUTH_USER_MODEL)), ('teachers', models.ManyToManyField(blank=True, related_name='teachers_course', to=settings.AUTH_USER_MODEL)), ('teaching_assistants', models.ManyToManyField( blank=True, related_name='teaching_assistants_course', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='HWFFile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('data', models.FileField(null=True, upload_to='homework_file')), ('initial_upload_time', models.DateTimeField(auto_now_add=True)), ('initial_upload_user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='HWFSubmission', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('aware', models.BooleanField(default=True)), ('submit_time', models.DateTimeField(auto_now_add=True)), ('description', models.TextField(blank=True, null=True)), ('score', models.FloatField(default=0.0)), ('is_excellent', models.BooleanField(default=False)), ('addfile', models.ManyToManyField(blank=True, related_name='addfile_submission', to='data.HWFFile')), ('assignment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='assignment_submission', to='data.HWFAssignment')), ('image', models.ManyToManyField(blank=True, related_name='image_submission', to='data.HWFFile')), ('pdf', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='pdf_submission', to='data.HWFFile')), ('submitter', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='my_submission', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='Message', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('send_time', models.DateTimeField(auto_now_add=True)), ('read', models.BooleanField(default=False)), ], ), migrations.CreateModel( name='MessageContent', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('text', models.TextField(max_length=2000)), ], ), migrations.CreateModel( name='MessageFile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('data', models.FileField(null=True, upload_to='chat_file')), ('initial_upload_time', models.DateTimeField(auto_now_add=True)), ('initial_upload_user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='UserAvatar', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('url_height', models.PositiveIntegerField(default=75)), ('url_width', models.PositiveIntegerField(default=75)), ('useravatar', models.ImageField(height_field='url_height', null=True, upload_to='avatars', width_field='url_width')), ('user', models.ManyToManyField(related_name='useravatar', to=settings.AUTH_USER_MODEL)), ], ), migrations.AddField( model_name='messagecontent', name='addfile', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, related_name='file_message_content', to='data.MessageFile'), ), migrations.AddField( model_name='messagecontent', name='audio', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, related_name='audio_message_content', to='data.MessageFile'), ), migrations.AddField( model_name='messagecontent', name='picture', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, related_name='pic_message_content', to='data.MessageFile'), ), migrations.AddField( model_name='message', name='content', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='complete_message', to='data.MessageContent'), ), migrations.AddField( model_name='message', name='receiver', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='in_message', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='message', name='sender', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='out_message', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='hwfassignment', name='addfile', field=models.ManyToManyField(blank=True, related_name='assignment', to='data.HWFFile'), ), migrations.AddField( model_name='hwfassignment', name='course_class', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='course_assignments', to='data.HWFCourseClass'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Project', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True, verbose_name='英文简称')), ('fullDisplayName', models.CharField(db_index=True, max_length=255, verbose_name='中文全称')), ('description', models.TextField(blank=True, null=True, verbose_name='描述')), ('url', models.URLField(max_length=255, unique=True, verbose_name='URL地址')), ('config_xml', models.FileField(upload_to=data.models.project_filepath, verbose_name='config.xml')), ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')), ], options={ 'verbose_name': '项目', 'verbose_name_plural': '项目', 'ordering': ('name', 'created_at'), }, ), migrations.CreateModel( name='Job', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(db_index=True, max_length=255, verbose_name='Job名')), ('fullDisplayName', models.CharField(db_index=True, max_length=255, verbose_name='中文全称')), ('description', models.TextField(blank=True, null=True, verbose_name='描述')), ('url', models.URLField(max_length=255, unique=True, verbose_name='URL地址')), ('config_xml', models.FileField(upload_to=data.models.job_filepath, verbose_name='config.xml')), ('env', models.CharField(default='all', max_length=255, verbose_name='环境(组)')), ('nextBuildNumber', models.PositiveIntegerField(verbose_name='下次构建ID')), ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='job_project', to='data.Project', verbose_name='所属项目')), ], options={ 'verbose_name': 'Job', 'verbose_name_plural': 'Job', 'ordering': ('name', 'created_at'), 'unique_together': {('project', 'name')}, }, ), migrations.CreateModel( name='Build', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('build_id', models.PositiveIntegerField(verbose_name='构建ID')), ('url', models.URLField(max_length=255, unique=True, verbose_name='URL地址')), ('result', models.CharField(choices=[(0, 'SUCCESS'), (1, 'FAILED')], max_length=1, verbose_name='执行结果')), ('fullDisplayName', models.CharField(db_index=True, max_length=255, verbose_name='中文全称')), ('description', models.TextField(blank=True, null=True, verbose_name='描述')), ('start_time', models.DateTimeField(verbose_name='开始时间')), ('duration', models.PositiveSmallIntegerField(verbose_name='构建时长')), ('consoleText', models.FileField(upload_to=data.models.build_filepath, verbose_name='构建console信息')), ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')), ('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='build_job', to='data.Job', verbose_name='所属Job')), ], options={ 'verbose_name': '构建', 'verbose_name_plural': '构建', 'ordering': ('build_id', 'created_at'), 'unique_together': {('job', 'build_id')}, }, ), migrations.CreateModel( name='JobParameter', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, verbose_name='参数名')), ('type', models.CharField(max_length=255, verbose_name='参数类型')), ('value', models.CharField(blank=True, max_length=255, null=True, verbose_name='参数值')), ('description', models.TextField(blank=True, null=True, verbose_name='描述')), ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')), ('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='parameter_job', to='data.Job', verbose_name='所属Job')), ], options={ 'verbose_name': 'Job参数', 'verbose_name_plural': 'Job参数', 'ordering': ('name', 'created_at'), 'unique_together': {('job', 'name')}, }, ), migrations.CreateModel( name='BuildParameter', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, verbose_name='参数名')), ('value', models.CharField(blank=True, max_length=255, null=True, verbose_name='参数值')), ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')), ('build', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='parameter_build', to='data.Build', verbose_name='所属构建')), ], options={ 'verbose_name': '构建参数', 'verbose_name_plural': '构建参数', 'ordering': ('name', 'created_at'), 'unique_together': {('build', 'name')}, }, ), ]