mirror of https://github.com/raiots/TasksManager
add: some note & analyse table on index.html
This commit is contained in:
parent
004ba6a0a6
commit
42ce5e6fc8
|
@ -29,6 +29,7 @@ class TaskAdmin(admin.ModelAdmin):
|
||||||
def get_changeform_initial_data(self, request):
|
def get_changeform_initial_data(self, request):
|
||||||
return {'department': request.user.department}
|
return {'department': request.user.department}
|
||||||
|
|
||||||
|
# 年度任务编辑界面仅显示本部门的任务属性
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if db_field.name == 'task_property':
|
if db_field.name == 'task_property':
|
||||||
kwargs["queryset"] = TaskProperty.objects.filter(own_department=request.user.department)
|
kwargs["queryset"] = TaskProperty.objects.filter(own_department=request.user.department)
|
||||||
|
@ -55,6 +56,8 @@ class TaskAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
|
|
||||||
class TodoAdmin(admin.ModelAdmin):
|
class TodoAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
|
# 工作包页面仅显示所属本部门的年度任务
|
||||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||||
if db_field.name == 'related_task':
|
if db_field.name == 'related_task':
|
||||||
kwargs["queryset"] = models.Task.objects.filter(department=request.user.department)
|
kwargs["queryset"] = models.Task.objects.filter(department=request.user.department)
|
||||||
|
@ -63,8 +66,8 @@ class TodoAdmin(admin.ModelAdmin):
|
||||||
fieldsets = [
|
fieldsets = [
|
||||||
(None, {
|
(None, {
|
||||||
'fields': [
|
'fields': [
|
||||||
'related_task', 'todo_topic', 'todo_note', 'deadline', 'duty_group', 'main_executor', 'sub_executor', 'predict_work',
|
'related_task', 'todo_topic', 'todo_note', 'deadline', 'duty_group', 'main_executor', 'sub_executor',
|
||||||
'evaluate_factor',
|
'predict_work', 'evaluate_factor',
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
@ -75,9 +78,10 @@ class TodoAdmin(admin.ModelAdmin):
|
||||||
list_display = (
|
list_display = (
|
||||||
'todo_topic',
|
'todo_topic',
|
||||||
'deadline',
|
'deadline',
|
||||||
|
'todo_note',
|
||||||
'task_id',
|
'task_id',
|
||||||
|
'task_origin',
|
||||||
'lined_task',
|
'lined_task',
|
||||||
# 'task_origin',
|
|
||||||
# 'duty_department',
|
# 'duty_department',
|
||||||
'duty_group',
|
'duty_group',
|
||||||
'main_executor',
|
'main_executor',
|
||||||
|
@ -91,7 +95,7 @@ class TodoAdmin(admin.ModelAdmin):
|
||||||
list_filter = ('deadline',)
|
list_filter = ('deadline',)
|
||||||
list_display_links = ('todo_topic', 'deadline', )
|
list_display_links = ('todo_topic', 'deadline', )
|
||||||
date_hierarchy = 'deadline'
|
date_hierarchy = 'deadline'
|
||||||
list_per_page = 20
|
list_per_page = 70 # 目的是取消自动分页,好像有bug
|
||||||
raw_id_fields = ("main_executor", "sub_executor")
|
raw_id_fields = ("main_executor", "sub_executor")
|
||||||
search_fields = ('todo_topic',)
|
search_fields = ('todo_topic',)
|
||||||
ordering = ('related_task', )
|
ordering = ('related_task', )
|
||||||
|
@ -116,7 +120,9 @@ class TodoAdmin(admin.ModelAdmin):
|
||||||
return obj.related_task
|
return obj.related_task
|
||||||
lined_task.short_description = '任务名称'
|
lined_task.short_description = '任务名称'
|
||||||
|
|
||||||
|
# TODO 增加承办人与协办人只显示本部门人员
|
||||||
|
# TODO 任务编辑界面按部门显示
|
||||||
|
# TODO 修复工作事项显示不下自动分页,取消自动分页
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,3 +12,5 @@ class TodoForm(forms.ModelForm):
|
||||||
fields = ['maturity', 'real_work', 'complete_note']
|
fields = ['maturity', 'real_work', 'complete_note']
|
||||||
labels ={'text': ''}
|
labels ={'text': ''}
|
||||||
widgets = {'rows': '3'}
|
widgets = {'rows': '3'}
|
||||||
|
|
||||||
|
# TODO 数据不可为空
|
|
@ -211,17 +211,17 @@
|
||||||
<div class="lists">
|
<div class="lists">
|
||||||
<ul class="nes-list is-circle">
|
<ul class="nes-list is-circle">
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/nostalgic-css/NES.css" target="_blank" rel="noopener">
|
<a href="#" target="_blank" rel="noopener">
|
||||||
NES.css
|
NES.css
|
||||||
</a>
|
</a>
|
||||||
- NES-style CSS Framework
|
- NES-style CSS Framework
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/stisla/stisla" target="_blank" rel="noopener">Simple-UI</a>
|
<a href="#" target="_blank" rel="noopener">Simple-UI</a>
|
||||||
- Django后台模板
|
- Django后台模板
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/stisla/stisla" target="_blank" rel="noopener">AdminLTE</a>
|
<a href="#" target="_blank" rel="noopener">AdminLTE</a>
|
||||||
- Free Bootstrap Admin Template
|
- Free Bootstrap Admin Template
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -85,48 +85,50 @@
|
||||||
{# </div>#}
|
{# </div>#}
|
||||||
<!-- /.col -->
|
<!-- /.col -->
|
||||||
</div>
|
</div>
|
||||||
{# <div class="row">#}
|
<div class="row">
|
||||||
{# <div class="col-md-12">#}
|
<div class="col-md-12">
|
||||||
{# <!-- BAR CHART -->#}
|
<!-- BAR CHART -->
|
||||||
{# <div class="card card-gray">#}
|
<div class="card card-gray">
|
||||||
{# <div class="card-header">#}
|
<div class="card-header">
|
||||||
{# <h3 class="card-title">Bar Chart</h3>#}
|
<h3 class="card-title">部门工作统计表</h3>
|
||||||
{##}
|
|
||||||
{# <div class="card-tools">#}
|
<div class="card-tools">
|
||||||
{# <button type="button" class="btn btn-tool" data-card-widget="collapse"><i#}
|
<button type="button" class="btn btn-tool" data-card-widget="collapse"><i
|
||||||
{# class="fas fa-minus"></i>#}
|
class="fas fa-minus"></i>
|
||||||
{# </button>#}
|
</button>
|
||||||
{# <button type="button" class="btn btn-tool" data-card-widget="remove"><i#}
|
<button type="button" class="btn btn-tool" data-card-widget="remove"><i
|
||||||
{# class="fas fa-times"></i></button>#}
|
class="fas fa-times"></i></button>
|
||||||
{# </div>#}
|
</div>
|
||||||
{# </div>#}
|
</div>
|
||||||
{# <div class="card-body">#}
|
|
||||||
{# <div class="chart">#}
|
<!-- 工作统计表格 -->
|
||||||
{# <div class="chartjs-size-monitor">#}
|
<div class="card-body">
|
||||||
{# <div class="chartjs-size-monitor-expand">#}
|
<div class="chart">
|
||||||
{# <div class=""></div>#}
|
<div class="chartjs-size-monitor">
|
||||||
{# </div>#}
|
<div class="chartjs-size-monitor-expand">
|
||||||
{# <div class="chartjs-size-monitor-shrink">#}
|
<div class=""></div>
|
||||||
{# <div class=""></div>#}
|
</div>
|
||||||
{# </div>#}
|
<div class="chartjs-size-monitor-shrink">
|
||||||
{# </div>#}
|
<div class=""></div>
|
||||||
{# <canvas id="barChart"#}
|
</div>
|
||||||
{# style="height: 230px; min-height: 230px; display: block; width: 764px;"#}
|
</div>
|
||||||
{# width="764" height="230" class="chartjs-render-monitor"></canvas>#}
|
<canvas id="barChart"
|
||||||
{# </div>#}
|
style="height: 230px; min-height: 230px; display: block; width: 764px;"
|
||||||
{# </div>#}
|
width="764" height="230" class="chartjs-render-monitor"></canvas>
|
||||||
{# <!-- /.card-body -->#}
|
</div>
|
||||||
{# </div>#}
|
</div>
|
||||||
{# <!-- /.card -->#}
|
<!-- /.card-body -->
|
||||||
{# </div>#}
|
</div>
|
||||||
{# <!-- /.col (MAIN) -->#}
|
<!-- /.card -->
|
||||||
{# </div>#}
|
</div>
|
||||||
|
<!-- /.col (MAIN) -->
|
||||||
|
</div>
|
||||||
<!-- /.row -->
|
<!-- /.row -->
|
||||||
</div><!-- /.container-fluid -->
|
</div><!-- /.container-fluid -->
|
||||||
</section>
|
</section>
|
||||||
<!-- /.content -->
|
<!-- /.content -->
|
||||||
</div>
|
</div>
|
||||||
{#TODO 图表#}
|
|
||||||
{# <div class="content-wrapper">#}
|
{# <div class="content-wrapper">#}
|
||||||
{# {% for point in points %}#}
|
{# {% for point in points %}#}
|
||||||
{# {{ point }}#}
|
{# {{ point }}#}
|
||||||
|
@ -161,7 +163,7 @@
|
||||||
labels : [{% for user in users %}'{{ user }}', {% endfor %}],
|
labels : [{% for user in users %}'{{ user }}', {% endfor %}],
|
||||||
datasets: [
|
datasets: [
|
||||||
{
|
{
|
||||||
label : 'Digital Goods',
|
label : '承办任务',
|
||||||
backgroundColor : 'rgba(60,141,188,0.9)',
|
backgroundColor : 'rgba(60,141,188,0.9)',
|
||||||
borderColor : 'rgba(60,141,188,0.8)',
|
borderColor : 'rgba(60,141,188,0.8)',
|
||||||
pointRadius : false,
|
pointRadius : false,
|
||||||
|
@ -169,10 +171,10 @@
|
||||||
pointStrokeColor : 'rgba(60,141,188,1)',
|
pointStrokeColor : 'rgba(60,141,188,1)',
|
||||||
pointHighlightFill : '#fff',
|
pointHighlightFill : '#fff',
|
||||||
pointHighlightStroke: 'rgba(60,141,188,1)',
|
pointHighlightStroke: 'rgba(60,141,188,1)',
|
||||||
data : [28, 48, 40, 19, 86, 27, 90]
|
data : [{% for user in users %}'{{ user.main_executor.count }}', {% endfor %}]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label : 'Electronics',
|
label : '协办任务',
|
||||||
backgroundColor : 'rgba(210, 214, 222, 1)',
|
backgroundColor : 'rgba(210, 214, 222, 1)',
|
||||||
borderColor : 'rgba(210, 214, 222, 1)',
|
borderColor : 'rgba(210, 214, 222, 1)',
|
||||||
pointRadius : false,
|
pointRadius : false,
|
||||||
|
@ -180,7 +182,7 @@
|
||||||
pointStrokeColor : '#c1c7d1',
|
pointStrokeColor : '#c1c7d1',
|
||||||
pointHighlightFill : '#fff',
|
pointHighlightFill : '#fff',
|
||||||
pointHighlightStroke: 'rgba(220,220,220,1)',
|
pointHighlightStroke: 'rgba(220,220,220,1)',
|
||||||
data : [65, 59, 80, 81, 56, 55, 40]
|
data : [{% for user in users %}'{{ user.sub_executor.count }}', {% endfor %}]
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue