From 22751fe28f609af62bce5d024fdb007274d95aaf Mon Sep 17 00:00:00 2001 From: zty Date: Tue, 19 Mar 2024 17:05:04 +0800 Subject: [PATCH] add new information --- server/apps/information/__init__.py | 0 server/apps/information/admin.py | 3 + server/apps/information/apps.py | 5 + .../information/migrations/0001_initial.py | 105 +++++++++++++++++ .../apps/information/migrations/__init__.py | 0 server/apps/information/models.py | 106 ++++++++++++++++++ server/apps/information/serializers.py | 0 server/apps/information/tests.py | 3 + server/apps/information/url.py | 0 server/apps/information/views.py | 3 + 10 files changed, 225 insertions(+) create mode 100644 server/apps/information/__init__.py create mode 100644 server/apps/information/admin.py create mode 100644 server/apps/information/apps.py create mode 100644 server/apps/information/migrations/0001_initial.py create mode 100644 server/apps/information/migrations/__init__.py create mode 100644 server/apps/information/models.py create mode 100644 server/apps/information/serializers.py create mode 100644 server/apps/information/tests.py create mode 100644 server/apps/information/url.py create mode 100644 server/apps/information/views.py diff --git a/server/apps/information/__init__.py b/server/apps/information/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/server/apps/information/admin.py b/server/apps/information/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/server/apps/information/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/server/apps/information/apps.py b/server/apps/information/apps.py new file mode 100644 index 0000000..339005f --- /dev/null +++ b/server/apps/information/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class InformationConfig(AppConfig): + name = 'information' diff --git a/server/apps/information/migrations/0001_initial.py b/server/apps/information/migrations/0001_initial.py new file mode 100644 index 0000000..97f2e21 --- /dev/null +++ b/server/apps/information/migrations/0001_initial.py @@ -0,0 +1,105 @@ +# Generated by Django 3.2.12 on 2024-03-19 08:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='AbilityReview', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=20, unique=True, verbose_name='公司名称')), + ('qualification_name', models.CharField(max_length=20, verbose_name='资质名称')), + ('judging_method', models.CharField(choices=[('文审', '文审'), ('现场', '现场')], max_length=20, verbose_name='评审方法')), + ('judging_type', models.CharField(choices=[('初次', '初次'), ('扩项', '扩项'), ('变更', '变更'), ('复评', '复评'), ('迁址', '迁址')], max_length=20, verbose_name='评审类型')), + ('add_param', models.IntegerField(default=0, verbose_name='新增参数')), + ('review_date', models.DateField(null=True, verbose_name='评审日期')), + ('now_count', models.IntegerField(default=0, verbose_name='现有场所数量')), + ('add_count', models.IntegerField(default=0, verbose_name='新增场所数量')), + ], + options={ + 'verbose_name': '评审情况', + 'db_table': 'ability_review', + }, + ), + migrations.CreateModel( + name='Contact', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=20, unique=True, verbose_name='姓名')), + ('address', models.CharField(max_length=100, verbose_name='地址')), + ('header', models.CharField(max_length=20, verbose_name='负责人')), + ('tel', models.CharField(max_length=20, verbose_name='负责人电话')), + ('email', models.CharField(max_length=50, null=True, verbose_name='负责人邮箱')), + ('head_technology', models.CharField(max_length=50, verbose_name='技术负责人')), + ('tel_technology', models.CharField(max_length=20, verbose_name='技术负责人电话')), + ('email_technology', models.CharField(max_length=50, null=True, verbose_name='技术负责人邮箱')), + ('head_quality', models.CharField(max_length=50, verbose_name='质量负责人')), + ('tel_quality', models.CharField(max_length=20, verbose_name='质量负责人电话')), + ('email_quality', models.CharField(max_length=50, null=True, verbose_name='质量负责人邮箱')), + ], + options={ + 'verbose_name': '实验室联系方式', + 'db_table': 'contact', + }, + ), + migrations.CreateModel( + name='ExternalAuditors', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name_company', models.CharField(max_length=20, unique=True, verbose_name='公司名称')), + ('name', models.CharField(max_length=20, verbose_name='姓名')), + ('review_type', models.CharField(max_length=20, verbose_name='评审类型')), + ('certificate_expiration', models.DateField(verbose_name='证书有效期')), + ('contact', models.CharField(max_length=20, verbose_name='联系方式')), + ('judging_areas', models.CharField(max_length=20, verbose_name='评审领域')), + ('remark', models.CharField(max_length=20, null=True, verbose_name='备注')), + ], + options={ + 'verbose_name': '外审员情况', + 'db_table': 'externalauditors', + }, + ), + migrations.CreateModel( + name='QualityActivities', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=20, unique=True, verbose_name='活动名称')), + ('roles', models.CharField(choices=[('组织方', '组织方'), ('活动方', '活动方')], max_length=20, verbose_name='参与角色')), + ('collaborators', models.CharField(max_length=20, verbose_name='合作方')), + ('organizational_units', models.CharField(max_length=20, verbose_name='组织单位')), + ('place', models.CharField(max_length=50, verbose_name='活动地点')), + ('time', models.DateField(null=True, verbose_name='活动时间')), + ('participations', models.IntegerField(verbose_name='活动参与单位数量')), + ('function', models.CharField(max_length=100, verbose_name='活动中发挥的作用')), + ('earnings', models.IntegerField(verbose_name='活动收益')), + ], + options={ + 'verbose_name': '质量活动', + 'db_table': 'quality_activities', + }, + ), + migrations.CreateModel( + name='QualityCommendation', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=20, unique=True, verbose_name='项目名称')), + ('commendation_name', models.CharField(max_length=20, verbose_name='表彰名称')), + ('Awards_level', models.CharField(max_length=20, verbose_name='获奖等级')), + ('awardee_company', models.CharField(max_length=20, verbose_name='获奖单位')), + ('awarded_by', models.CharField(max_length=20, verbose_name='颁奖单位')), + ('awarded_date', models.DateField(null=True, verbose_name='获奖日期')), + ], + options={ + 'verbose_name': '质量表彰', + 'db_table': 'quality_commendation', + }, + ), + ] diff --git a/server/apps/information/migrations/__init__.py b/server/apps/information/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/server/apps/information/models.py b/server/apps/information/models.py new file mode 100644 index 0000000..4b00d12 --- /dev/null +++ b/server/apps/information/models.py @@ -0,0 +1,106 @@ +from django.db import models + +# Create your models here. + +class AbilityReview(models.Model): + type_method = ( + ('文审', '文审'), + ('现场', '现场')) + + juge_type = ( ('初次', '初次'), + ('扩项', '扩项'), + ('变更', '变更'), + ('复评', '复评'), + ('迁址', '迁址')) + name = models.CharField(max_length=20, unique=True, verbose_name='公司名称') + qualification_name = models.CharField(max_length=20, verbose_name='资质名称') + judging_method = models.CharField(max_length=20, choices=type_method, verbose_name='评审方法') + judging_type = models.CharField(max_length=20, choices=juge_type, verbose_name='评审类型') + add_param = models.IntegerField(default=0, verbose_name='新增参数') + review_date = models.DateField(verbose_name='评审日期', null=True) + now_count = models.IntegerField(default=0, verbose_name='现有场所数量') + add_count = models.IntegerField(default=0, verbose_name='新增场所数量') + + class Meta: + verbose_name = '评审情况' + db_table = 'ability_review' + + def __str__(self): + return self.name + + +class QualityCommendation(models.Model): + name = models.CharField(max_length=20, unique=True, verbose_name='项目名称') + commendation_name = models.CharField(max_length=20, verbose_name='表彰名称') + Awards_level = models.CharField(max_length=20, verbose_name='获奖等级') + awardee_company = models.CharField(max_length=20, verbose_name='获奖单位') + awarded_by = models.CharField(max_length=20, verbose_name='颁奖单位') + awarded_date = models.DateField(verbose_name='获奖日期', null=True) + + class Meta: + verbose_name = '质量表彰' + db_table = 'quality_commendation' + + def __str__(self): + return self.name + + +class QualityActivities(models.Model): + role = (('组织方','组织方'),('活动方','活动方')) + name = models.CharField(max_length=20, unique=True, verbose_name='活动名称') + roles = models.CharField(max_length=20, choices=role, verbose_name='参与角色') + collaborators = models.CharField(max_length=20, verbose_name='合作方') + organizational_units = models.CharField(max_length=20, verbose_name='组织单位') + place = models.CharField(max_length=50, verbose_name='活动地点') + time = models.DateField(verbose_name='活动时间', null=True) + participations = models.IntegerField(verbose_name='活动参与单位数量') + function = models.CharField(max_length=100, verbose_name='活动中发挥的作用') + earnings = models.IntegerField(verbose_name='活动收益') + + class Meta: + verbose_name = '质量活动' + db_table = 'quality_activities' + + def __str__(self): + return self.name + + +class Contact(models.Model): + name = models.CharField(max_length=20, unique=True, verbose_name='姓名') + address = models.CharField(max_length=100, verbose_name='地址') + header = models.CharField(max_length=20, verbose_name='负责人') + tel = models.CharField(max_length=20, verbose_name='负责人电话') + email = models.CharField(max_length=50, verbose_name='负责人邮箱', null=True) + head_technology = models.CharField(max_length=50, verbose_name='技术负责人') + tel_technology = models.CharField(max_length=20, verbose_name='技术负责人电话') + email_technology = models.CharField(max_length=50, verbose_name='技术负责人邮箱', null=True) + head_quality = models.CharField(max_length=50, verbose_name='质量负责人') + tel_quality = models.CharField(max_length=20, verbose_name='质量负责人电话') + email_quality = models.CharField(max_length=50, verbose_name='质量负责人邮箱', null=True) + + class Meta: + verbose_name = '实验室联系方式' + db_table = 'contact' + + def __str__(self): + return self.name + + +class ExternalAuditors(models.Model): + review_type = ( ('CNAS', 'CNAS'), + ('CMA', 'CMA'), + ('DICA', 'DICA')) + name_company = models.CharField(max_length=20, unique=True, verbose_name='公司名称') + name = models.CharField(max_length=20, verbose_name='姓名') + review_type = models.CharField(max_length=20, verbose_name='评审类型') + certificate_expiration = models.DateField(verbose_name='证书有效期') + contact = models.CharField(max_length=20, verbose_name='联系方式') + judging_areas = models.CharField(max_length=20, verbose_name='评审领域') + remark = models.CharField(max_length=20, verbose_name='备注', null=True) + + class Meta: + verbose_name = '外审员情况' + db_table = 'externalauditors' + + def __str__(self): + return self.name \ No newline at end of file diff --git a/server/apps/information/serializers.py b/server/apps/information/serializers.py new file mode 100644 index 0000000..e69de29 diff --git a/server/apps/information/tests.py b/server/apps/information/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/server/apps/information/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/server/apps/information/url.py b/server/apps/information/url.py new file mode 100644 index 0000000..e69de29 diff --git a/server/apps/information/views.py b/server/apps/information/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/server/apps/information/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.