dict add
This commit is contained in:
parent
66208baf14
commit
35647fc622
|
@ -13,7 +13,6 @@
|
||||||
v-loading="treeLoding"
|
v-loading="treeLoding"
|
||||||
class="filter-tree"
|
class="filter-tree"
|
||||||
:data="dictTypeData"
|
:data="dictTypeData"
|
||||||
default-expand-all
|
|
||||||
highlight-current
|
highlight-current
|
||||||
:expand-on-click-node="false"
|
:expand-on-click-node="false"
|
||||||
:filter-node-method="filterNode"
|
:filter-node-method="filterNode"
|
||||||
|
@ -46,11 +45,13 @@
|
||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>字典详情</span>
|
<span>字典详情</span>
|
||||||
</div>
|
</div>
|
||||||
<el-button v-show="listQuery.type" type="primary" icon="el-icon-plus" @click="handleAddDict" >新增</el-button>
|
<div >
|
||||||
|
<el-button v-show="listQuery.type" type="primary" icon="el-icon-plus" @click="handleAddDict" >新增</el-button>
|
||||||
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
v-show="listQuery.type"
|
v-show="listQuery.type"
|
||||||
v-loading="listLoading"
|
v-loading="listLoading"
|
||||||
:data="dictList.results"
|
:data="dictList"
|
||||||
style="width: 100%;margin-top:10px;"
|
style="width: 100%;margin-top:10px;"
|
||||||
border
|
border
|
||||||
fit
|
fit
|
||||||
|
@ -59,16 +60,21 @@
|
||||||
max-height="600"
|
max-height="600"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="50" />
|
<el-table-column type="index" width="50" />
|
||||||
|
<el-table-column align="center" label="代号/编号">
|
||||||
|
<template slot-scope="scope">{{ scope.row.code }}</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column align="center" label="名称">
|
<el-table-column align="center" label="名称">
|
||||||
<template slot-scope="scope">{{ scope.row.name }}</template>
|
<template slot-scope="scope">{{ scope.row.name }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="header-center" label="描述">
|
<el-table-column align="header-center" label="描述">
|
||||||
<template slot-scope="scope">{{ scope.row.description }}</template>
|
<template slot-scope="scope">{{ scope.row.description }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="header-center" label="排序">
|
<el-table-column align="header-center" label="是否有效">
|
||||||
<template
|
<template slot-scope="scope">
|
||||||
slot-scope="scope"
|
|
||||||
>{{ scope.row.sort }}</template>
|
<el-tag type="danger" v-if="scope.row.is_deleted">无效</el-tag>
|
||||||
|
<el-tag type="success" v-else>有效</el-tag>
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" label="操作">
|
<el-table-column align="center" label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
@ -80,25 +86,25 @@
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
@click="handleEdit(scope)"
|
@click="handleEdit(scope)"
|
||||||
/>
|
/>
|
||||||
<el-button
|
<!-- <el-button
|
||||||
v-if="!scope.row.is_superuser"
|
v-if="!scope.row.is_superuser"
|
||||||
:disabled="!checkPermission(['dict_delete'])"
|
:disabled="!checkPermission(['dict_delete'])"
|
||||||
type="danger"
|
type="danger"
|
||||||
size="small"
|
size="small"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@click="handleDelete(scope)"
|
@click="handleDelete(scope)"
|
||||||
/>
|
/> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<p v-show="!listQuery.type">点击左侧类型查看字典</p>
|
<p v-show="!listQuery.type">点击左侧类型查看字典</p>
|
||||||
<pagination
|
<!-- <pagination
|
||||||
v-show="dictList.count>0"
|
v-show="dictList.count>0"
|
||||||
:total="dictList.count"
|
:total="dictList.count"
|
||||||
:page.sync="listQuery.page"
|
:page.sync="listQuery.page"
|
||||||
:limit.sync="listQuery.page_size"
|
:limit.sync="listQuery.page_size"
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/> -->
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
@ -122,11 +128,21 @@
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog :visible.sync="dgV2" :title="dgT2==='edit'?'编辑字典':'新建字典'">
|
<el-dialog :visible.sync="dgV2" :title="dgT2==='edit'?'编辑字典':'新建字典'">
|
||||||
<el-form ref="Form2" :model="dict" label-width="80px" label-position="right" :rules="rule2">
|
<el-form ref="Form2" :model="dict" label-width="80px" label-position="right" :rules="rule2">
|
||||||
|
|
||||||
|
<el-form-item label="编号" prop="code">
|
||||||
|
<el-input v-model="dict.code" placeholder="编号" />
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="名称" prop="name">
|
<el-form-item label="名称" prop="name">
|
||||||
<el-input v-model="dict.name" placeholder="名称" />
|
<el-input type="textarea" v-model="dict.name" placeholder="名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="描述" prop="description">
|
<el-form-item label="描述" prop="description">
|
||||||
<el-input v-model="dict.description" placeholder="描述" />
|
<el-input type="textarea" v-model="dict.description" placeholder="描述" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="状态" prop="is_deleted">
|
||||||
|
<el-radio-group v-model="dict.is_deleted">
|
||||||
|
<el-radio :label="false">有效</el-radio>
|
||||||
|
<el-radio :label="true">无效</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div style="text-align:right;">
|
<div style="text-align:right;">
|
||||||
|
@ -165,15 +181,16 @@ const defaultDict = {
|
||||||
name: '',
|
name: '',
|
||||||
description: '',
|
description: '',
|
||||||
sort: 1,
|
sort: 1,
|
||||||
type: null
|
type: null,
|
||||||
|
is_deleted: false
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
components: { Pagination, Treeselect },
|
components: { Pagination, Treeselect },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
dicttype: defaultDictType,
|
dicttype: Object.assign({}, defaultDictType),
|
||||||
dict: defaultDict,
|
dict: Object.assign({}, defaultDict),
|
||||||
dictList: { count: 0 },
|
dictList: [],
|
||||||
listLoading: true,
|
listLoading: true,
|
||||||
listQuery: {
|
listQuery: {
|
||||||
page: 1,
|
page: 1,
|
||||||
|
@ -202,7 +219,6 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList()
|
|
||||||
this.getDictTypeList()
|
this.getDictTypeList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -219,13 +235,11 @@ export default {
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
getDictList(this.listQuery).then(response => {
|
getDictList(this.listQuery).then(response => {
|
||||||
if (response.code >= 200) {
|
if (response.data) {
|
||||||
if (response.data.results) {
|
|
||||||
this.dictList = response.data
|
this.dictList = response.data
|
||||||
}
|
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
}
|
}
|
||||||
})
|
}).catch(error=>{this.listLoading = false})
|
||||||
},
|
},
|
||||||
getDictTypeList() {
|
getDictTypeList() {
|
||||||
this.treeLoding = true
|
this.treeLoding = true
|
||||||
|
@ -259,8 +273,8 @@ export default {
|
||||||
this.$refs['Form2'].clearValidate()
|
this.$refs['Form2'].clearValidate()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleEditDictType(val) {
|
handleEditDictType(data) {
|
||||||
this.dicttype = val // copy obj
|
this.dicttype = Object.assign({}, data) // copy obj
|
||||||
this.dgT1 = 'edit'
|
this.dgT1 = 'edit'
|
||||||
this.dgV1 = true
|
this.dgV1 = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
@ -277,7 +291,7 @@ export default {
|
||||||
.then(async() => {
|
.then(async() => {
|
||||||
const { code } = await deleteDict(scope.row.id)
|
const { code } = await deleteDict(scope.row.id)
|
||||||
if (code>=200){
|
if (code>=200){
|
||||||
this.dictList.results.splice(scope.row.index, 1)
|
this.dictList.splice(scope.row.index, 1)
|
||||||
this.$message({
|
this.$message({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: '成功删除!'
|
message: '成功删除!'
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Generated by Django 3.0.7 on 2020-06-09 09:16
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('system', '0011_auto_20200609_1549'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='dict',
|
||||||
|
unique_together={('name', 'code')},
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Generated by Django 3.0.7 on 2020-06-09 09:29
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('system', '0012_auto_20200609_1716'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='dict',
|
||||||
|
unique_together={('name', 'code', 'parent')},
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Generated by Django 3.0.7 on 2020-06-09 09:38
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('system', '0013_auto_20200609_1729'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='dict',
|
||||||
|
unique_together={('name', 'code', 'type')},
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,24 @@
|
||||||
|
# Generated by Django 3.0.7 on 2020-06-09 09:49
|
||||||
|
|
||||||
|
import django.contrib.postgres.fields.jsonb
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('system', '0014_auto_20200609_1738'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='dict',
|
||||||
|
name='other',
|
||||||
|
field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True, verbose_name='其它信息'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='historicaldict',
|
||||||
|
name='other',
|
||||||
|
field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True, verbose_name='其它信息'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Generated by Django 3.0.7 on 2020-06-10 02:09
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('system', '0015_auto_20200609_1749'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='dict',
|
||||||
|
name='enabled',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='historicaldict',
|
||||||
|
name='enabled',
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 3.0.7 on 2020-06-10 06:37
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('system', '0016_auto_20200610_1009'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='dict',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=1000, unique=True, verbose_name='名称'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='historicaldict',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(db_index=True, max_length=1000, verbose_name='名称'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 3.0.7 on 2020-06-10 06:57
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('system', '0017_auto_20200610_1437'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='dict',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=1000, verbose_name='名称'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='historicaldict',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=1000, verbose_name='名称'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -5,7 +5,7 @@ from django.db.models.query import QuerySet
|
||||||
|
|
||||||
from utils.model import SoftModel, BaseModel
|
from utils.model import SoftModel, BaseModel
|
||||||
from simple_history.models import HistoricalRecords
|
from simple_history.models import HistoricalRecords
|
||||||
|
from django.contrib.postgres.fields import JSONField
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -147,10 +147,10 @@ class Dict(SoftModel):
|
||||||
"""
|
"""
|
||||||
数据字典
|
数据字典
|
||||||
"""
|
"""
|
||||||
name = models.CharField('名称', max_length=30, unique=True)
|
name = models.CharField('名称', max_length=1000)
|
||||||
code = models.CharField('编号', max_length=30, null=True, blank=True)
|
code = models.CharField('编号', max_length=30, null=True, blank=True)
|
||||||
description = models.TextField('描述', blank=True, null=True)
|
description = models.TextField('描述', blank=True, null=True)
|
||||||
enabled = models.BooleanField('是否有效', default=True)
|
other = JSONField('其它信息', blank=True, null=True)
|
||||||
type = models.ForeignKey(
|
type = models.ForeignKey(
|
||||||
DictType, on_delete=models.CASCADE, verbose_name='类型')
|
DictType, on_delete=models.CASCADE, verbose_name='类型')
|
||||||
sort = models.IntegerField('排序', default=1)
|
sort = models.IntegerField('排序', default=1)
|
||||||
|
@ -161,6 +161,7 @@ class Dict(SoftModel):
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = '字典'
|
verbose_name = '字典'
|
||||||
verbose_name_plural = verbose_name
|
verbose_name_plural = verbose_name
|
||||||
|
unique_together = ('name', 'code', 'type')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
|
@ -46,11 +46,11 @@ class LogoutView(APIView):
|
||||||
return Response(status=status.HTTP_200_OK)
|
return Response(status=status.HTTP_200_OK)
|
||||||
|
|
||||||
class TaskViewSet(ModelViewSet):
|
class TaskViewSet(ModelViewSet):
|
||||||
queryset = PeriodicTask.objects.all()
|
queryset = PeriodicTask.objects
|
||||||
serializer_class = TaskSerializer
|
serializer_class = TaskSerializer
|
||||||
search_fields = ['^name']
|
search_fields = ['^name']
|
||||||
filterset_fields = ['enabled']
|
filterset_fields = ['enabled']
|
||||||
ordering = '-pk'
|
ordering = ['-pk']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,12 +60,12 @@ class DictTypeViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
perms_map = {'get': '*', 'post': 'dicttype_create',
|
perms_map = {'get': '*', 'post': 'dicttype_create',
|
||||||
'put': 'dicttype_update', 'delete': 'dicttype_delete'}
|
'put': 'dicttype_update', 'delete': 'dicttype_delete'}
|
||||||
queryset = DictType.objects.all()
|
queryset = DictType.objects
|
||||||
serializer_class = DictTypeSerializer
|
serializer_class = DictTypeSerializer
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
search_fields = ['^name']
|
search_fields = ['name']
|
||||||
ordering_fields = ['id']
|
ordering_fields = ['pk']
|
||||||
ordering = 'id'
|
ordering = ['pk']
|
||||||
|
|
||||||
|
|
||||||
class DictViewSet(ModelViewSet):
|
class DictViewSet(ModelViewSet):
|
||||||
|
@ -74,11 +74,21 @@ class DictViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
perms_map = {'get': '*', 'post': 'dict_create',
|
perms_map = {'get': '*', 'post': 'dict_create',
|
||||||
'put': 'dict_update', 'delete': 'dict_delete'}
|
'put': 'dict_update', 'delete': 'dict_delete'}
|
||||||
queryset = Dict.objects.all()
|
queryset = Dict.objects.get_queryset(all=True) # 获取全部的,包括软删除的
|
||||||
|
filterset_fields = ['type', 'is_deleted']
|
||||||
serializer_class = DictSerializer
|
serializer_class = DictSerializer
|
||||||
search_fields = ['name']
|
search_fields = ['name']
|
||||||
ordering_fields = ['id']
|
ordering_fields = ['sort']
|
||||||
ordering = 'id'
|
ordering = ['is_deleted', 'sort']
|
||||||
|
|
||||||
|
def paginate_queryset(self, queryset):
|
||||||
|
"""
|
||||||
|
如果查询参数里有type,则不分页,否则请求分页
|
||||||
|
"""
|
||||||
|
if (self.request.query_params.get('type', None)) or (self.paginator is None):
|
||||||
|
return None
|
||||||
|
return self.paginator.paginate_queryset(queryset, self.request, view=self)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class PositionViewSet(ModelViewSet):
|
class PositionViewSet(ModelViewSet):
|
||||||
|
@ -87,12 +97,12 @@ class PositionViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
perms_map = {'get': '*', 'post': 'position_create',
|
perms_map = {'get': '*', 'post': 'position_create',
|
||||||
'put': 'position_update', 'delete': 'position_delete'}
|
'put': 'position_update', 'delete': 'position_delete'}
|
||||||
queryset = Position.objects.all()
|
queryset = Position.objects
|
||||||
serializer_class = PositionSerializer
|
serializer_class = PositionSerializer
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
search_fields = ['name','description']
|
search_fields = ['name','description']
|
||||||
ordering_fields = ['id']
|
ordering_fields = ['pk']
|
||||||
ordering = 'id'
|
ordering = ['pk']
|
||||||
|
|
||||||
|
|
||||||
class TestView(APIView):
|
class TestView(APIView):
|
||||||
|
@ -106,13 +116,12 @@ class PermissionViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
perms_map = {'get': '*', 'post': 'perm_create',
|
perms_map = {'get': '*', 'post': 'perm_create',
|
||||||
'put': 'perm_update', 'delete': 'perm_delete'}
|
'put': 'perm_update', 'delete': 'perm_delete'}
|
||||||
queryset = Position.objects.all()
|
queryset = Permission.objects
|
||||||
queryset = Permission.objects.all()
|
|
||||||
serializer_class = PermissionSerializer
|
serializer_class = PermissionSerializer
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
search_fields = ['name']
|
search_fields = ['name']
|
||||||
ordering_fields = ['sort']
|
ordering_fields = ['sort']
|
||||||
ordering = 'id'
|
ordering = ['pk']
|
||||||
|
|
||||||
|
|
||||||
class OrganizationViewSet(ModelViewSet):
|
class OrganizationViewSet(ModelViewSet):
|
||||||
|
@ -121,12 +130,12 @@ class OrganizationViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
perms_map = {'get': '*', 'post': 'org_create',
|
perms_map = {'get': '*', 'post': 'org_create',
|
||||||
'put': 'org_update', 'delete': 'org_delete'}
|
'put': 'org_update', 'delete': 'org_delete'}
|
||||||
queryset = Organization.objects.all()
|
queryset = Organization.objects
|
||||||
serializer_class = OrganizationSerializer
|
serializer_class = OrganizationSerializer
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
search_fields = ['name', 'method']
|
search_fields = ['name', 'method']
|
||||||
ordering_fields = ['id']
|
ordering_fields = ['pk']
|
||||||
ordering = 'id'
|
ordering = ['pk']
|
||||||
|
|
||||||
|
|
||||||
class RoleViewSet(ModelViewSet):
|
class RoleViewSet(ModelViewSet):
|
||||||
|
@ -135,12 +144,12 @@ class RoleViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
perms_map = {'get': '*', 'post': 'role_create',
|
perms_map = {'get': '*', 'post': 'role_create',
|
||||||
'put': 'role_update', 'delete': 'role_delete'}
|
'put': 'role_update', 'delete': 'role_delete'}
|
||||||
queryset = Role.objects.all()
|
queryset = Role.objects
|
||||||
serializer_class = RoleSerializer
|
serializer_class = RoleSerializer
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
search_fields = ['name']
|
search_fields = ['name']
|
||||||
ordering_fields = ['id']
|
ordering_fields = ['pk']
|
||||||
ordering = 'id'
|
ordering = ['pk']
|
||||||
|
|
||||||
|
|
||||||
class UserViewSet(ModelViewSet):
|
class UserViewSet(ModelViewSet):
|
||||||
|
@ -149,11 +158,11 @@ class UserViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
perms_map = {'get': '*', 'post': 'user_create',
|
perms_map = {'get': '*', 'post': 'user_create',
|
||||||
'put': 'user_update', 'delete': 'user_delete'}
|
'put': 'user_update', 'delete': 'user_delete'}
|
||||||
queryset = User.objects.all().order_by('-id')
|
queryset = User.objects.order_by('-id')
|
||||||
serializer_class = UserListSerializer
|
serializer_class = UserListSerializer
|
||||||
filterset_class = UserFilter
|
filterset_class = UserFilter
|
||||||
search_fields = ['username', 'name', 'phone', 'email']
|
search_fields = ['username', 'name', 'phone', 'email']
|
||||||
ordering_fields = ['-id']
|
ordering_fields = ['-pk']
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
queryset = self.queryset
|
queryset = self.queryset
|
||||||
|
@ -217,7 +226,7 @@ class UserViewSet(ModelViewSet):
|
||||||
'id': user.id,
|
'id': user.id,
|
||||||
'username': user.username,
|
'username': user.username,
|
||||||
'name': user.name,
|
'name': user.name,
|
||||||
'roles': user.roles.all().values_list('name', flat=True),
|
'roles': user.roles.values_list('name', flat=True),
|
||||||
# 'avatar': request._request._current_scheme_host + '/media/' + str(user.image),
|
# 'avatar': request._request._current_scheme_host + '/media/' + str(user.image),
|
||||||
'avatar': user.avatar,
|
'avatar': user.avatar,
|
||||||
'perms': perms,
|
'perms': perms,
|
||||||
|
@ -230,11 +239,11 @@ class FileViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
perms_map = None
|
perms_map = None
|
||||||
parser_classes = [MultiPartParser, JSONParser]
|
parser_classes = [MultiPartParser, JSONParser]
|
||||||
queryset = File.objects.all()
|
queryset = File.objects
|
||||||
serializer_class = FileSerializer
|
serializer_class = FileSerializer
|
||||||
filterset_fields = ['type']
|
filterset_fields = ['type']
|
||||||
search_fields = ['name']
|
search_fields = ['name']
|
||||||
ordering = '-create_time'
|
ordering = ['-create_time']
|
||||||
|
|
||||||
def perform_create(self, serializer):
|
def perform_create(self, serializer):
|
||||||
fileobj = self.request.data.get('file')
|
fileobj = self.request.data.get('file')
|
||||||
|
|
|
@ -33,14 +33,15 @@ class SoftDeletableManagerMixin(object):
|
||||||
'''
|
'''
|
||||||
_queryset_class = SoftDeletableQuerySet
|
_queryset_class = SoftDeletableQuerySet
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self, all=False):
|
||||||
'''
|
'''
|
||||||
Return queryset limited to not deleted entries.
|
Return queryset limited to not deleted entries.
|
||||||
'''
|
'''
|
||||||
kwargs = {'model': self.model, 'using': self._db}
|
kwargs = {'model': self.model, 'using': self._db}
|
||||||
if hasattr(self, '_hints'):
|
if hasattr(self, '_hints'):
|
||||||
kwargs['hints'] = self._hints
|
kwargs['hints'] = self._hints
|
||||||
|
if all:
|
||||||
|
return self._queryset_class(**kwargs)
|
||||||
return self._queryset_class(**kwargs).filter(is_deleted=False)
|
return self._queryset_class(**kwargs).filter(is_deleted=False)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue