关于序号错误的bug

This commit is contained in:
raiots 2021-03-06 15:31:29 +08:00
parent 15f80ce25d
commit 15f0165ae4
11 changed files with 157 additions and 229 deletions

View File

@ -1,50 +0,0 @@
# Generated by Django 3.1.5 on 2021-02-17 09:37
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Task',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('task_topic', models.CharField(max_length=50, verbose_name='任务名称')),
('task_id', models.CharField(max_length=50, unique=True, verbose_name='任务编号')),
('task_note', models.CharField(max_length=100, verbose_name='任务说明')),
('task_origin', models.CharField(max_length=150, verbose_name='任务来源')),
('aim_value', models.CharField(max_length=50, verbose_name='目标值')),
('deadline', models.DateField(verbose_name='完成时间')),
],
options={
'verbose_name': '年度任务',
'verbose_name_plural': '年度任务',
'ordering': ['deadline'],
},
),
migrations.CreateModel(
name='Todo',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('todo_topic', models.CharField(max_length=50, verbose_name='工作事项')),
('todo_note', models.CharField(blank=True, max_length=100, verbose_name='工作要求及交付物')),
('predict_work', models.DecimalField(decimal_places=1, max_digits=5, verbose_name='预计工作量')),
('evaluate_factor', models.DecimalField(decimal_places=1, max_digits=5, verbose_name='折算系数')),
('maturity', models.CharField(blank=True, choices=[('0%', '0%'), ('10%', '10%'), ('20%', '20%'), ('30%', '30%'), ('40%', '40%'), ('50%', '50%'), ('60%', '60%'), ('70%', '70%'), ('80%', '80%'), ('90%', '90%'), ('100%', '100%')], default='0%', max_length=5, verbose_name='成熟度')),
('real_work', models.DecimalField(blank=True, decimal_places=1, max_digits=5, null=True, verbose_name='实际工作量')),
('complete_note', models.TextField(blank=True, max_length=150, verbose_name='完成情况说明')),
('deadline', models.DateField(verbose_name='完成时间')),
],
options={
'verbose_name': '工作包',
'verbose_name_plural': '工作包',
'ordering': ['deadline'],
},
),
]

View File

@ -1,69 +0,0 @@
# Generated by Django 3.1.5 on 2021-02-17 09:37
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),
('tasks', '0001_initial'),
('users', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='todo',
name='duty_group',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.department', verbose_name='承办单位'),
),
migrations.AddField(
model_name='todo',
name='main_executor',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='main_executor', to=settings.AUTH_USER_MODEL, verbose_name='承/督办人'),
),
migrations.AddField(
model_name='todo',
name='quality_mark',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.qualitymark', verbose_name='质量评价'),
),
migrations.AddField(
model_name='todo',
name='sub_executor',
field=models.ManyToManyField(blank=True, default='', related_name='sub_executor', to=settings.AUTH_USER_MODEL, verbose_name='协办人'),
),
migrations.AddField(
model_name='task',
name='department',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='department', to='users.department', verbose_name='所属单位'),
),
migrations.AddField(
model_name='task',
name='duty_group',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='duty_group', to='users.department', verbose_name='责任单位'),
),
migrations.AddField(
model_name='task',
name='leader',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='leader', to=settings.AUTH_USER_MODEL, verbose_name='主管领导'),
),
migrations.AddField(
model_name='task',
name='principal',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='principal', to=settings.AUTH_USER_MODEL, verbose_name='负责人'),
),
migrations.AddField(
model_name='task',
name='related_task',
field=models.ManyToManyField(blank=True, to='tasks.Todo', verbose_name='任务节点'),
),
migrations.AddField(
model_name='task',
name='task_property',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.taskproperty', verbose_name='任务属性'),
),
]

View File

@ -0,0 +1,56 @@
# Generated by Django 3.1.5 on 2021-03-05 19:27
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),
('tasks', '0003_auto_20210304_2224'),
]
operations = [
migrations.AlterField(
model_name='task',
name='aim_value',
field=models.CharField(blank=True, max_length=50, verbose_name='目标值'),
),
migrations.AlterField(
model_name='task',
name='leader',
field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='leader', to=settings.AUTH_USER_MODEL, verbose_name='主管领导'),
),
migrations.AlterField(
model_name='task',
name='principal',
field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='principal', to=settings.AUTH_USER_MODEL, verbose_name='负责人'),
),
migrations.AlterField(
model_name='task',
name='task_note',
field=models.CharField(blank=True, max_length=100, verbose_name='任务说明'),
),
migrations.AlterField(
model_name='task',
name='task_origin',
field=models.CharField(blank=True, max_length=150, verbose_name='任务来源'),
),
migrations.AlterField(
model_name='todo',
name='evaluate_factor',
field=models.DecimalField(blank=True, decimal_places=1, default='1', max_digits=5, verbose_name='折算系数'),
),
migrations.AlterField(
model_name='todo',
name='predict_work',
field=models.DecimalField(blank=True, decimal_places=1, max_digits=5, verbose_name='预计工作量'),
),
migrations.AlterField(
model_name='todo',
name='related_task',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='related_task', to='tasks.task', verbose_name='年度任务'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.1.5 on 2021-03-05 20:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tasks', '0004_auto_20210305_1927'),
]
operations = [
migrations.AlterField(
model_name='task',
name='task_id',
field=models.CharField(max_length=50, unique=True, verbose_name='编号'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.1.5 on 2021-03-05 21:06
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tasks', '0005_auto_20210305_2059'),
]
operations = [
migrations.AlterField(
model_name='todo',
name='predict_work',
field=models.DecimalField(blank=True, decimal_places=1, max_digits=5, null=True, verbose_name='预计工作量'),
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 3.1.5 on 2021-03-05 22:25
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),
('tasks', '0006_auto_20210305_2106'),
]
operations = [
migrations.AlterField(
model_name='task',
name='leader',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='leader', to=settings.AUTH_USER_MODEL, verbose_name='主管领导'),
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 3.1.5 on 2021-03-05 22:26
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),
('tasks', '0007_auto_20210305_2225'),
]
operations = [
migrations.AlterField(
model_name='task',
name='principal',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='principal', to=settings.AUTH_USER_MODEL, verbose_name='负责人'),
),
]

View File

@ -0,0 +1,20 @@
# Generated by Django 3.1.5 on 2021-03-05 23:17
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('tasks', '0008_auto_20210305_2226'),
]
operations = [
migrations.AlterField(
model_name='todo',
name='sub_executor',
field=models.ManyToManyField(blank=True, related_name='sub_executor', to=settings.AUTH_USER_MODEL, verbose_name='协办人'),
),
]

View File

@ -1,107 +0,0 @@
# Generated by Django 3.1.5 on 2021-02-17 09:37
import django.contrib.auth.models
import django.contrib.auth.validators
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
]
operations = [
migrations.CreateModel(
name='Department',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=50, verbose_name='部门名称')),
],
options={
'verbose_name': '部门',
'verbose_name_plural': '部门',
},
),
migrations.CreateModel(
name='MarkValue',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('mark_value', models.DecimalField(decimal_places=2, max_digits=3, verbose_name='评价等级考核系数')),
],
options={
'verbose_name': '评价等级考核系数',
'verbose_name_plural': '评价等级考核系数',
},
),
migrations.CreateModel(
name='MyGroup',
fields=[
('group_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='auth.group')),
],
options={
'verbose_name': '权限组',
'verbose_name_plural': '权限组',
},
bases=('auth.group',),
managers=[
('objects', django.contrib.auth.models.GroupManager()),
],
),
migrations.CreateModel(
name='TaskProperty',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('task_property', models.CharField(max_length=50, verbose_name='任务属性')),
('own_department', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.department', verbose_name='所属部门')),
],
options={
'verbose_name': '任务属性',
'verbose_name_plural': '任务属性',
},
),
migrations.CreateModel(
name='QualityMark',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('mark_name', models.CharField(max_length=10, verbose_name='评价等级定义')),
('mark_value', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.markvalue')),
],
options={
'verbose_name': '评价等级定义',
'verbose_name_plural': '评价等级定义',
},
),
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=150, verbose_name='first name')),
('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
('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(default=django.utils.timezone.now, verbose_name='date joined')),
('real_name', models.CharField(max_length=150, verbose_name='姓名')),
('staff_id', models.CharField(max_length=150, verbose_name='工号')),
('department', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.department')),
('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': '用户',
'verbose_name_plural': '用户',
},
managers=[
('objects', django.contrib.auth.models.UserManager()),
],
),
]

View File

@ -77,7 +77,7 @@
<tbody>
{% for todo in group_todo %}
<tr>
<td>{{ todo.id }}</td>
<td>{{ forloop.counter }}</td>
<td>{{ todo.todo_topic }}</td>
<td style="text-align: center">{{ todo.deadline | date:"m月d日" }}</td>
<td style="width: 160px"><textarea style="width:100%;overflow:hidden">{{ todo.todo_note }}</textarea></td>

View File

@ -80,7 +80,7 @@
<tbody>
{% for todo in my_todo %}
<tr>
<td style="text-align: center">{{ todo.id }}</td>
<td style="text-align: center">{{ forloop.counter }}</td>
<td>{{ todo.todo_topic }}</td>
<td style="text-align: center">{{ todo.deadline | date:"m月d日" }}</td>
<td style="width: 160px"><textarea style="width:100%;overflow:hidden">{{ todo.todo_note }}</textarea></td>
@ -132,7 +132,7 @@
<tbody>
{% for todo in my_sub_todo %}
<tr>
<td style="text-align: center">{{ todo.id }}</td>
<td style="text-align: center">{{ forloop.counter }}</td>
<td>{{ todo.todo_topic }}</td>
<td style="text-align: center">{{ todo.deadline | date:"m月d日" }}</td>
<td style="width: 160px"><textarea style="width:100%;overflow:hidden">{{ todo.todo_note }}</textarea></td>