rule
This commit is contained in:
parent
e30d372b10
commit
b160e93cb5
|
@ -1,3 +1,4 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from .models import Standard
|
||||
# Register your models here.
|
||||
admin.site.register(Standard)
|
|
@ -0,0 +1,53 @@
|
|||
# Generated by Django 3.0.7 on 2020-06-15 03:37
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Standard',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('name', models.CharField(max_length=1000, verbose_name='标准名称')),
|
||||
('code', models.CharField(blank=True, max_length=30, null=True, verbose_name='编号')),
|
||||
('publish_date', models.DateField(verbose_name='发布日期')),
|
||||
('implement_date', models.DateField(verbose_name='实施日期')),
|
||||
('status', models.CharField(choices=[('现行', '现行'), ('即将实施', '即将实施'), ('作废', '作废'), ('废止', '废止')], default='状态', max_length=50, verbose_name='状态')),
|
||||
('path', models.CharField(blank=True, max_length=1000, null=True, verbose_name='文件地址')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='standard_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='standard_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': '标准库',
|
||||
'verbose_name_plural': '标准库',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ImplementRule',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='implementrule_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='implementrule_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
|
@ -0,0 +1,85 @@
|
|||
# Generated by Django 3.0.7 on 2020-06-15 09:07
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('system', '0019_auto_20200612_1448'),
|
||||
('certset', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='implementrule',
|
||||
options={'verbose_name': '实施规则', 'verbose_name_plural': '实施规则'},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='implementrule',
|
||||
name='cert_pattern',
|
||||
field=models.ManyToManyField(blank=True, related_name='implementrule_cert_pattern', to='system.Dict', verbose_name='认证模式'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='implementrule',
|
||||
name='cnas_scope',
|
||||
field=models.ManyToManyField(blank=True, related_name='implementrule_cnas_scope', to='system.Dict', verbose_name='CNAS业务范围'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='implementrule',
|
||||
name='code',
|
||||
field=models.CharField(default='ok', max_length=30, unique=True, verbose_name='编号'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='implementrule',
|
||||
name='economy_class',
|
||||
field=models.ManyToManyField(blank=True, related_name='implementrule_economy_class', to='system.Dict', verbose_name='国民经济分类'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='implementrule',
|
||||
name='name',
|
||||
field=models.CharField(default='ok', max_length=1000, verbose_name='规则名称'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='implementrule',
|
||||
name='pv_class',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='implementrule_pv_class', to='system.Dict', verbose_name='自愿性产品认证产品'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='implementrule',
|
||||
name='pv_scope',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='implementrule_pv_scope', to='system.Dict', verbose_name='认证领域'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='implementrule',
|
||||
name='standards',
|
||||
field=models.ManyToManyField(blank=True, related_name='implementrule_standards', to='certset.Standard', verbose_name='依据标准'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Unit',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('name', models.CharField(max_length=1000, verbose_name='单元名称')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='unit_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='unit_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': '产品单元',
|
||||
'verbose_name_plural': '产品单元',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='implementrule',
|
||||
name='units',
|
||||
field=models.ManyToManyField(blank=True, related_name='implementrule_units', to='certset.Unit', verbose_name='单元划分'),
|
||||
),
|
||||
]
|
|
@ -1,5 +1,5 @@
|
|||
from django.db import models
|
||||
from apps.system.models import CommonAModel
|
||||
from apps.system.models import CommonAModel, Dict
|
||||
# Create your models here.
|
||||
|
||||
class Standard(CommonAModel):
|
||||
|
@ -15,7 +15,44 @@ class Standard(CommonAModel):
|
|||
implement_date = models.DateField('实施日期')
|
||||
status = models.CharField('状态', max_length=50,
|
||||
choices=status_choices, default='状态')
|
||||
path = models.CharField('文件地址', max_length=1000, null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '标准库'
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class Unit(CommonAModel):
|
||||
name = models.CharField('单元名称', max_length=1000)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '产品单元'
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
pass
|
||||
class ImplementRule(CommonAModel):
|
||||
pass
|
||||
|
||||
name = models.CharField('规则名称', max_length=1000)
|
||||
code = models.CharField('编号', max_length=30, unique=True)
|
||||
units = models.ManyToManyField(Unit, blank=True, verbose_name='单元划分', related_name='implementrule_units')
|
||||
standards = models.ManyToManyField(Standard, blank=True, verbose_name='依据标准', related_name='implementrule_standards')
|
||||
pv_scope = models.ForeignKey(Dict, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='认证领域', related_name= 'implementrule_pv_scope')
|
||||
pv_class = models.ForeignKey(Dict, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='自愿性产品认证产品', related_name= 'implementrule_pv_class')
|
||||
cnas_scope = models.ManyToManyField(Dict, blank=True, verbose_name='CNAS业务范围', related_name= 'implementrule_cnas_scope')
|
||||
economy_class = models.ManyToManyField(Dict, blank=True, verbose_name='国民经济分类', related_name= 'implementrule_economy_class')
|
||||
cert_pattern = models.ManyToManyField(Dict, blank=True, verbose_name='认证模式', related_name= 'implementrule_cert_pattern')
|
||||
|
||||
class Meta:
|
||||
verbose_name = '实施规则'
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from .models import Standard, Unit, ImplementRule
|
||||
|
||||
|
||||
class StandardSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Standard
|
||||
fields = '__all__'
|
||||
|
||||
class ImplementRuleSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ImplementRule
|
||||
fields = '__all__'
|
||||
|
||||
class UnitSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Unit
|
||||
fields = '__all__'
|
|
@ -0,0 +1,12 @@
|
|||
from django.urls import path, include
|
||||
from .views import StandardViewSet, UnitdViewSet, ImplementRuleViewSet
|
||||
from rest_framework import routers
|
||||
|
||||
router = routers.DefaultRouter()
|
||||
router.register('standard', StandardViewSet, basename="standard")
|
||||
router.register('unit', UnitdViewSet, basename="unit")
|
||||
router.register('implementrule', ImplementRuleViewSet, basename="implementrule")
|
||||
|
||||
urlpatterns = [
|
||||
path('', include(router.urls))
|
||||
]
|
|
@ -1,3 +1,32 @@
|
|||
from django.shortcuts import render
|
||||
|
||||
from rest_framework.viewsets import ModelViewSet
|
||||
from .models import Standard, Unit, ImplementRule
|
||||
from .serializers import StandardSerializer, ImplementRuleSerializer, UnitSerializer
|
||||
# Create your views here.
|
||||
|
||||
class StandardViewSet(ModelViewSet):
|
||||
perms_map = {'get': '*', 'post': 'standard_create',
|
||||
'put': 'standard_update', 'delete': 'standard_delete'}
|
||||
queryset = Standard.objects
|
||||
serializer_class = StandardSerializer
|
||||
search_fields = ['name', 'code', 'status', 'implement_date']
|
||||
filterset_fields = ['status']
|
||||
ordering = ['-create_time']
|
||||
|
||||
class ImplementRuleViewSet(ModelViewSet):
|
||||
perms_map = {'get': '*', 'post': 'implementrule_create',
|
||||
'put': 'implementrule_update', 'delete': 'implementrule_delete'}
|
||||
queryset = ImplementRule.objects
|
||||
serializer_class = ImplementRuleSerializer
|
||||
search_fields = ['name', 'code']
|
||||
filterset_fields = ['pv_scope']
|
||||
ordering = ['-create_time']
|
||||
|
||||
class UnitdViewSet(ModelViewSet):
|
||||
perms_map = {'get': '*', 'post': 'unit_create',
|
||||
'put': 'unit_update', 'delete': 'unit_delete'}
|
||||
queryset = Unit.objects
|
||||
serializer_class = UnitSerializer
|
||||
search_fields = ['name']
|
||||
filterset_fields = ['name']
|
||||
ordering = ['-create_time']
|
||||
|
|
|
@ -48,7 +48,7 @@ class LogoutView(APIView):
|
|||
class TaskViewSet(ModelViewSet):
|
||||
queryset = PeriodicTask.objects
|
||||
serializer_class = TaskSerializer
|
||||
search_fields = ['^name']
|
||||
search_fields = ['name']
|
||||
filterset_fields = ['enabled']
|
||||
ordering = ['-pk']
|
||||
|
||||
|
|
|
@ -147,8 +147,7 @@ REST_FRAMEWORK = {
|
|||
'rest_framework.filters.SearchFilter',
|
||||
'rest_framework.filters.OrderingFilter'
|
||||
],
|
||||
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
|
||||
'PAGE_SIZE': 10,
|
||||
'DEFAULT_PAGINATION_CLASS': 'utils.pagination.MyPagination',
|
||||
'DATETIME_FORMAT': '%Y-%m-%d %H:%M:%S',
|
||||
'DATE_FORMAT': '%Y-%m-%d',
|
||||
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
|
||||
|
|
|
@ -32,6 +32,7 @@ urlpatterns = [
|
|||
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
||||
path('token/black/', LogoutView.as_view(), name='token_black'),
|
||||
path('system/', include('apps.system.urls')),
|
||||
path('certset/', include('apps.certset.urls')),
|
||||
path('docs/', include_docs_urls(title="接口文档",
|
||||
authentication_classes=[], permission_classes=[])),
|
||||
path('', include(router.urls)),
|
||||
|
|
|
@ -3,4 +3,4 @@ from rest_framework.pagination import PageNumberPagination
|
|||
|
||||
class MyPagination(PageNumberPagination):
|
||||
page_size = 10
|
||||
page_size_query_param = 'limit'
|
||||
page_size_query_param = 'page_size'
|
||||
|
|
Loading…
Reference in New Issue