diff --git a/TasksManager/settings.py b/TasksManager/settings.py
index 4b9f22a..b5a3a08 100644
--- a/TasksManager/settings.py
+++ b/TasksManager/settings.py
@@ -25,7 +25,7 @@ SECRET_KEY = '&!38pk#dv=r!_c(+b&oegc0m(ndzoue+ez*7kvjv2uubuqootp'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
-ALLOWED_HOSTS = []
+ALLOWED_HOSTS = ['192.168.31.198', '127.0.0.1']
# Application definition
diff --git a/apps/tasks/admin.py b/apps/tasks/admin.py
index dacac4b..606c109 100644
--- a/apps/tasks/admin.py
+++ b/apps/tasks/admin.py
@@ -45,24 +45,27 @@ class TaskAdmin(admin.ModelAdmin):
autocomplete_fields = ('related_task',)
search_fields = ('related_task',)
+class TaskInline(admin.StackedInline):
+ model = models.Task
class TodoAdmin(admin.ModelAdmin):
def sub_executor(self, obj):
return ', '.join([a.real_name for a in obj.sub_executor.all()])
- fieldsets = (
+ fieldsets = [
(None, {
- 'fields': (
+ 'fields': [
'todo_topic', 'todo_note', 'deadline', 'duty_group', 'main_executor', 'sub_executor', 'predict_work',
'evaluate_factor',
- )
+ ]
}),
('完成情况', {
- 'fields': (
- 'real_work', 'complete_note', 'quality_mark', 'maturity'
- )
- })
- )
+ 'fields': [
+ 'real_work', 'complete_note', 'quality_mark', 'maturity',
+ ], 'classes': ['collapse']
+ }),
+ ]
+ # inlines = [TaskInline]
list_display = (
'todo_topic',
'deadline',
@@ -87,10 +90,13 @@ class TodoAdmin(admin.ModelAdmin):
return obj.task_id
def lined_task(self, obj):
return obj.lined_task
+ def task_origin(self, obj):
+ return obj.task_origin
task_id.admin_order_field = 'task__task_id'
task_id.short_description = '任务编号'
lined_task.admin_order_field = 'task__task_topic'
lined_task.short_description = '任务名称'
+ task_origin.short_description = '任务来源'
admin.site.register(models.Task, TaskAdmin)
diff --git a/apps/tasks/migrations/0001_initial.py b/apps/tasks/migrations/0001_initial.py
index 8733320..421d4f8 100644
--- a/apps/tasks/migrations/0001_initial.py
+++ b/apps/tasks/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# Generated by Django 3.1.5 on 2021-01-29 13:31
+# Generated by Django 3.1.5 on 2021-02-17 09:37
from django.db import migrations, models
@@ -42,8 +42,8 @@ class Migration(migrations.Migration):
('deadline', models.DateField(verbose_name='完成时间')),
],
options={
- 'verbose_name': '每月工作事项',
- 'verbose_name_plural': '每月工作事项',
+ 'verbose_name': '工作包',
+ 'verbose_name_plural': '工作包',
'ordering': ['deadline'],
},
),
diff --git a/apps/tasks/migrations/0002_auto_20210129_1331.py b/apps/tasks/migrations/0002_auto_20210217_0937.py
similarity index 74%
rename from apps/tasks/migrations/0002_auto_20210129_1331.py
rename to apps/tasks/migrations/0002_auto_20210217_0937.py
index 7799513..1971d3c 100644
--- a/apps/tasks/migrations/0002_auto_20210129_1331.py
+++ b/apps/tasks/migrations/0002_auto_20210217_0937.py
@@ -1,4 +1,4 @@
-# Generated by Django 3.1.5 on 2021-01-29 13:31
+# Generated by Django 3.1.5 on 2021-02-17 09:37
from django.conf import settings
from django.db import migrations, models
@@ -19,17 +19,17 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='todo',
name='duty_group',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.mygroup', verbose_name='承办单位'),
+ 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.ManyToManyField(related_name='main_executor', to=settings.AUTH_USER_MODEL, verbose_name='承/督办人'),
+ 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.CASCADE, to='users.qualitymark', verbose_name='质量评价'),
+ 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',
@@ -39,12 +39,12 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='task',
name='department',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.department', verbose_name='所属单位'),
+ 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(on_delete=django.db.models.deletion.CASCADE, to='users.mygroup', verbose_name='责任单位'),
+ 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',
diff --git a/apps/tasks/migrations/0003_auto_20210129_1335.py b/apps/tasks/migrations/0003_auto_20210129_1335.py
deleted file mode 100644
index 82b463d..0000000
--- a/apps/tasks/migrations/0003_auto_20210129_1335.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# Generated by Django 3.1.5 on 2021-01-29 13:35
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0002_auto_20210129_1332'),
- ('tasks', '0002_auto_20210129_1331'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='task',
- name='department',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='department', to='users.department', verbose_name='所属单位'),
- ),
- migrations.AlterField(
- model_name='task',
- name='duty_group',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='duty_group', to='users.department', verbose_name='责任单位'),
- ),
- ]
diff --git a/apps/tasks/migrations/0004_auto_20210129_1434.py b/apps/tasks/migrations/0004_auto_20210129_1434.py
deleted file mode 100644
index 3ae437c..0000000
--- a/apps/tasks/migrations/0004_auto_20210129_1434.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 3.1.5 on 2021-01-29 14:34
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0004_auto_20210129_1434'),
- ('tasks', '0003_auto_20210129_1335'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='todo',
- name='duty_group',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.department', verbose_name='承办单位'),
- ),
- ]
diff --git a/apps/tasks/migrations/0005_auto_20210130_2021.py b/apps/tasks/migrations/0005_auto_20210130_2021.py
deleted file mode 100644
index 74e415a..0000000
--- a/apps/tasks/migrations/0005_auto_20210130_2021.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# Generated by Django 3.1.5 on 2021-01-30 20:21
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0005_auto_20210130_2021'),
- ('tasks', '0004_auto_20210129_1434'),
- ]
-
- operations = [
- migrations.AlterField(
- 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.AlterField(
- 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='责任单位'),
- ),
- ]
diff --git a/apps/tasks/migrations/0006_auto_20210201_1900.py b/apps/tasks/migrations/0006_auto_20210201_1900.py
deleted file mode 100644
index 5508378..0000000
--- a/apps/tasks/migrations/0006_auto_20210201_1900.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# Generated by Django 3.1.5 on 2021-02-01 19:00
-
-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', '0005_auto_20210130_2021'),
- ]
-
- operations = [
- migrations.RemoveField(
- model_name='todo',
- name='main_executor',
- ),
- migrations.AddField(
- model_name='todo',
- name='main_executor',
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='main_executor', to=settings.AUTH_USER_MODEL, verbose_name='承/督办人'),
- ),
- ]
diff --git a/apps/tasks/migrations/0007_auto_20210201_1901.py b/apps/tasks/migrations/0007_auto_20210201_1901.py
deleted file mode 100644
index a7767ce..0000000
--- a/apps/tasks/migrations/0007_auto_20210201_1901.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 3.1.5 on 2021-02-01 19:01
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0006_auto_20210201_1900'),
- ('tasks', '0006_auto_20210201_1900'),
- ]
-
- operations = [
- migrations.AlterField(
- 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='质量评价'),
- ),
- ]
diff --git a/apps/tasks/migrations/0008_auto_20210201_2227.py b/apps/tasks/migrations/0008_auto_20210201_2227.py
deleted file mode 100644
index f408569..0000000
--- a/apps/tasks/migrations/0008_auto_20210201_2227.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# Generated by Django 3.1.5 on 2021-02-01 22:27
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('tasks', '0007_auto_20210201_1901'),
- ]
-
- operations = [
- migrations.AlterModelOptions(
- name='todo',
- options={'ordering': ['deadline'], 'verbose_name': '工作包', 'verbose_name_plural': '工作包'},
- ),
- ]
diff --git a/apps/tasks/models.py b/apps/tasks/models.py
index edcb1bc..d99ea49 100644
--- a/apps/tasks/models.py
+++ b/apps/tasks/models.py
@@ -14,7 +14,8 @@ class Todo(models.Model):
)
# related_task = models.ManyToManyField(Task, verbose_name="关联的主任务")
duty_group = models.ForeignKey('users.Department', on_delete=models.CASCADE, verbose_name='承办单位')
- main_executor = models.ForeignKey(User, related_name='main_executor', on_delete=models.SET_NULL, verbose_name='承/督办人', null=True)
+ main_executor = models.ForeignKey(User, related_name='main_executor', on_delete=models.CASCADE,
+ verbose_name='承/督办人', blank=True, null=True)
sub_executor = models.ManyToManyField(User, related_name='sub_executor', verbose_name='协办人', default='', blank=True)
predict_work = models.DecimalField('预计工作量', max_digits=5, decimal_places=1)
evaluate_factor = models.DecimalField('折算系数', max_digits=5, decimal_places=1)
@@ -39,7 +40,8 @@ class Todo(models.Model):
)
real_work = models.DecimalField('实际工作量', max_digits=5, decimal_places=1, blank=True, null=True)
complete_note = models.TextField('完成情况说明', max_length=150, blank=True)
- quality_mark = models.ForeignKey('users.QualityMark', on_delete=models.SET_NULL, blank=True, null=True, verbose_name='质量评价')
+ quality_mark = models.ForeignKey('users.QualityMark', on_delete=models.SET_NULL, blank=True, null=True,
+ verbose_name='质量评价')
deadline = models.DateField(verbose_name='完成时间')
def __str__(self):
@@ -57,6 +59,7 @@ class Todo(models.Model):
lined_task = Task.objects.filter(related_task=self)
for task in lined_task:
return task.task_topic
+
# TODO 不知道有没有不用for循环直接查的
@property
@@ -69,6 +72,7 @@ class Todo(models.Model):
tasks = Task.objects.filter(related_task=self)
for task in tasks:
return task.task_origin
+
def duty_department(self):
tasks = Task.objects.filter(related_task=self)
for task in tasks:
@@ -79,9 +83,13 @@ class Todo(models.Model):
return self.deadline
@property
- def get_tatal_num(self):
+ def get_total_num(self):
return self.objects.all().count()
+ @property
+ def points(self):
+ return int(self.predict_work * self.evaluate_factor)
+
class Task(models.Model):
task_topic = models.CharField(
@@ -95,9 +103,11 @@ class Task(models.Model):
)
task_origin = models.CharField(max_length=150, verbose_name='任务来源')
task_property = models.ForeignKey('users.TaskProperty', on_delete=models.CASCADE, verbose_name='任务属性')
- related_task = models.ManyToManyField(Todo, verbose_name='任务节点', blank=True)
- department = models.ForeignKey('users.Department', related_name='department', on_delete=models.SET_NULL, blank=True, null=True, verbose_name='所属单位')
- duty_group = models.ForeignKey('users.Department', related_name='duty_group', on_delete=models.SET_NULL, blank=True, null=True, verbose_name='责任单位')
+ related_task = models.ManyToManyField(Todo, verbose_name='工作包', blank=True)
+ department = models.ForeignKey('users.Department', related_name='department', on_delete=models.SET_NULL, blank=True,
+ null=True, verbose_name='所属单位')
+ duty_group = models.ForeignKey('users.Department', related_name='duty_group', on_delete=models.SET_NULL, blank=True,
+ null=True, verbose_name='责任单位')
principal = models.ForeignKey(User, related_name='principal', verbose_name='负责人', on_delete=models.CASCADE)
leader = models.ForeignKey(User, related_name='leader', verbose_name='主管领导', on_delete=models.CASCADE)
aim_value = models.CharField(max_length=50, verbose_name='目标值')
diff --git a/apps/tasks/templatetags/taskfilter.py b/apps/tasks/templatetags/taskfilter.py
index 912a028..c005d05 100644
--- a/apps/tasks/templatetags/taskfilter.py
+++ b/apps/tasks/templatetags/taskfilter.py
@@ -13,16 +13,16 @@ def quarter_cate(value, quarter):
quarter = int(quarter)
if quarter == 1 and 1 <= month <= 3:
- return value
+ return str(value) + '
'
elif quarter == 2 and 4 <= month <= 6:
- return value
+ return str(value) + '
'
elif quarter == 3 and 7 <= month <= 9:
- return value
+ return str(value) + '
'
elif quarter == 4 and 10 <= month <= 12:
- return value
+ return str(value) + '
'
else:
return ''
diff --git a/apps/tasks/views.py b/apps/tasks/views.py
index 04a6d56..aeb766d 100644
--- a/apps/tasks/views.py
+++ b/apps/tasks/views.py
@@ -8,13 +8,14 @@ from django.views import View
# Create your views here.
from apps.tasks.models import Todo, Task
from apps.tasks.forms import TodoForm
+from apps.users.models import User
class IndexView(View):
def get(self, request):
- tasks = Task.objects.filter().order_by('task_id')
- context = {'tasks': tasks}
- return render(request, 'tasks/tasklist.html', context)
+ users = User.objects.all()
+ context = {'users': users}
+ return render(request, 'tasks/index.html', context)
class TodoListView(View):
diff --git a/apps/users/migrations/0001_initial.py b/apps/users/migrations/0001_initial.py
index 5d83f5f..483a8e4 100644
--- a/apps/users/migrations/0001_initial.py
+++ b/apps/users/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# Generated by Django 3.1.5 on 2021-01-29 13:31
+# Generated by Django 3.1.5 on 2021-02-17 09:37
import django.contrib.auth.models
import django.contrib.auth.validators
@@ -24,14 +24,19 @@ class Migration(migrations.Migration):
],
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)),
+ ('mark_value', models.DecimalField(decimal_places=2, max_digits=3, verbose_name='评价等级考核系数')),
],
+ options={
+ 'verbose_name': '评价等级考核系数',
+ 'verbose_name_plural': '评价等级考核系数',
+ },
),
migrations.CreateModel(
name='MyGroup',
@@ -52,6 +57,7 @@ class Migration(migrations.Migration):
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': '任务属性',
@@ -62,9 +68,13 @@ class Migration(migrations.Migration):
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_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',
@@ -82,7 +92,7 @@ class Migration(migrations.Migration):
('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(on_delete=django.db.models.deletion.CASCADE, to='users.department')),
+ ('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')),
],
diff --git a/apps/users/migrations/0002_auto_20210129_1332.py b/apps/users/migrations/0002_auto_20210129_1332.py
deleted file mode 100644
index 5fbcacc..0000000
--- a/apps/users/migrations/0002_auto_20210129_1332.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generated by Django 3.1.5 on 2021-01-29 13:32
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='user',
- name='department',
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='users.department'),
- ),
- ]
diff --git a/apps/users/migrations/0003_auto_20210129_1417.py b/apps/users/migrations/0003_auto_20210129_1417.py
deleted file mode 100644
index 00585d6..0000000
--- a/apps/users/migrations/0003_auto_20210129_1417.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Generated by Django 3.1.5 on 2021-01-29 14:17
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0002_auto_20210129_1332'),
- ]
-
- operations = [
- migrations.AlterModelOptions(
- name='department',
- options={'verbose_name': '部门', 'verbose_name_plural': '部门'},
- ),
- migrations.AddField(
- model_name='taskproperty',
- name='own_department',
- field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='users.department'),
- preserve_default=False,
- ),
- ]
diff --git a/apps/users/migrations/0004_auto_20210129_1434.py b/apps/users/migrations/0004_auto_20210129_1434.py
deleted file mode 100644
index 8140315..0000000
--- a/apps/users/migrations/0004_auto_20210129_1434.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generated by Django 3.1.5 on 2021-01-29 14:34
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0003_auto_20210129_1417'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='taskproperty',
- name='own_department',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.department', verbose_name='所属部门'),
- ),
- ]
diff --git a/apps/users/migrations/0005_auto_20210130_2021.py b/apps/users/migrations/0005_auto_20210130_2021.py
deleted file mode 100644
index 13b27a7..0000000
--- a/apps/users/migrations/0005_auto_20210130_2021.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Generated by Django 3.1.5 on 2021-01-30 20:21
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0004_auto_20210129_1434'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='taskproperty',
- name='own_department',
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.department', verbose_name='所属部门'),
- ),
- migrations.AlterField(
- model_name='user',
- name='department',
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.department'),
- ),
- ]
diff --git a/apps/users/migrations/0006_auto_20210201_1900.py b/apps/users/migrations/0006_auto_20210201_1900.py
deleted file mode 100644
index 58b87b1..0000000
--- a/apps/users/migrations/0006_auto_20210201_1900.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# Generated by Django 3.1.5 on 2021-02-01 19:00
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0005_auto_20210130_2021'),
- ]
-
- operations = [
- migrations.AlterModelOptions(
- name='markvalue',
- options={'verbose_name': '评分值', 'verbose_name_plural': '评分值'},
- ),
- migrations.AlterModelOptions(
- name='qualitymark',
- options={'verbose_name': '评分名称', 'verbose_name_plural': '评分名称'},
- ),
- migrations.AlterField(
- model_name='markvalue',
- name='mark_value',
- field=models.DecimalField(decimal_places=2, max_digits=3, verbose_name='评分值'),
- ),
- migrations.AlterField(
- model_name='qualitymark',
- name='mark_name',
- field=models.CharField(max_length=10, verbose_name='评分名称'),
- ),
- ]
diff --git a/apps/users/migrations/0007_auto_20210201_2227.py b/apps/users/migrations/0007_auto_20210201_2227.py
deleted file mode 100644
index 0ec94f4..0000000
--- a/apps/users/migrations/0007_auto_20210201_2227.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# Generated by Django 3.1.5 on 2021-02-01 22:27
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('users', '0006_auto_20210201_1900'),
- ]
-
- operations = [
- migrations.AlterModelOptions(
- name='markvalue',
- options={'verbose_name': '评价等级考核系数', 'verbose_name_plural': '评价等级考核系数'},
- ),
- migrations.AlterModelOptions(
- name='qualitymark',
- options={'verbose_name': '评价等级定义', 'verbose_name_plural': '评价等级定义'},
- ),
- migrations.AlterField(
- model_name='markvalue',
- name='mark_value',
- field=models.DecimalField(decimal_places=2, max_digits=3, verbose_name='评价等级考核系数'),
- ),
- migrations.AlterField(
- model_name='qualitymark',
- name='mark_name',
- field=models.CharField(max_length=10, verbose_name='评价等级定义'),
- ),
- ]
diff --git a/apps/users/models.py b/apps/users/models.py
index 6c7840f..f905bdb 100644
--- a/apps/users/models.py
+++ b/apps/users/models.py
@@ -3,6 +3,9 @@ from django.contrib.auth.models import AbstractUser, Group
# Create your models here.
+from django.db.models import Avg, Sum, F, Value
+
+
class User(AbstractUser):
real_name = models.CharField(max_length=150, verbose_name='姓名')
staff_id = models.CharField(max_length=150, verbose_name='工号')
@@ -15,6 +18,14 @@ class User(AbstractUser):
def __str__(self):
return self.real_name
+ @classmethod
+ def get_total_point(cls):
+ return cls.objects.aggregate(total=Sum(F('main_executor__predict_work') * F('main_executor__evaluate_factor') + F('sub_executor__predict_work') * F('sub_executor__evaluate_factor')))['total']
+
+ @classmethod
+ def get_predict_work_count(cls):
+ return cls.objects.aggregate(total_predict_work=Sum('main_executor__predict_work'))
+
class MyGroup(Group):
class Meta:
diff --git a/static/tasks/task.css b/static/tasks/task.css
index 52ae3df..899b3e2 100644
--- a/static/tasks/task.css
+++ b/static/tasks/task.css
@@ -5,7 +5,7 @@
BORDER-TOP: 0px solid;
/*width:100%;*/
overflow:hidden;
- width:200px;
+ width:160px;
font-size: 0.5rem;
}
diff --git a/templates/tasks/base.html b/templates/tasks/base.html
index ec0171a..23e69ef 100644
--- a/templates/tasks/base.html
+++ b/templates/tasks/base.html
@@ -305,7 +305,7 @@ scratch. This page gets rid of all links and provides the needed markup only.
CHRDI Task Manager ver 0.5 - beta
- Made with ❤ by Raintony.
+ Made with ❤ by Raiot.
@@ -319,5 +319,8 @@ scratch. This page gets rid of all links and provides the needed markup only.
+{% block script %}
+
+{% endblock %}