创建专家库app

This commit is contained in:
caoqianming 2021-06-02 17:35:01 +08:00
parent 24da23188c
commit 870ba7ef21
13 changed files with 168 additions and 1 deletions

View File

@ -0,0 +1 @@
default_app_config = 'apps.expert.apps.ExpertConfig'

View File

@ -0,0 +1,24 @@
from django.contrib import admin
from django.contrib.admin.decorators import register
from .models import BaseInfo, WorkExperience, Paper, Project, Award
# Register your models here.
@admin.register(BaseInfo)
class BaseInfoAdmin(admin.ModelAdmin):
pass
@admin.register(WorkExperience)
class WorkExperienceAdmin(admin.ModelAdmin):
pass
@admin.register(Paper)
class PaperAdmin(admin.ModelAdmin):
pass
@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
pass
@admin.register(Award)
class AwardAdmin(admin.ModelAdmin):
pass

View File

@ -0,0 +1,6 @@
from django.apps import AppConfig
class ExpertConfig(AppConfig):
name = 'apps.expert'
verbose_name = '专家库'

View File

@ -0,0 +1,37 @@
# Generated by Django 3.1.8 on 2021-06-02 06:59
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 = [
('system', '0002_auto_20210602_1459'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='BaseInfo',
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=100, verbose_name='姓名')),
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='baseinfo_belong_dept', to='system.organization', verbose_name='所属部门')),
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='baseinfo_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='baseinfo_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
('user', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='关联账户')),
],
options={
'verbose_name': '专家基本信息',
'verbose_name_plural': '专家基本信息',
},
),
]

View File

@ -0,0 +1,66 @@
from django.db import models
from utils.model import SoftModel, BaseModel
from apps.system.models import CommonAModel, CommonBModel, User
# Create your models here.
class BaseInfo(CommonBModel):
gender_choices = (
('', ''),
('', ''),
)
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True, verbose_name="关联账户")
name = models.CharField(verbose_name="姓名", max_length=100)
gender = models.CharField(verbose_name="性别",choices=gender_choices, default='', max_length=10)
idnumber = models.CharField(verbose_name="身份证号", max_length=40)
paddress = models.TextField(verbose_name="通讯地址")
photo = models.CharField(verbose_name="证件照", max_length=100, null=True, blank=True)
class Meta:
verbose_name = '专家基本信息'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class WorkExperience(CommonAModel):
name = models.CharField(verbose_name="单位名", max_length=100)
class Meta:
verbose_name = '专家工作经历'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class Project(CommonAModel):
name = models.CharField(verbose_name="名称", max_length=100)
class Meta:
verbose_name = '专家项目'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class Paper(CommonAModel):
name = models.CharField(verbose_name="名称", max_length=100)
class Meta:
verbose_name = '专家论文/著作'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class Award(CommonAModel):
name = models.CharField(verbose_name="名称", max_length=100)
class Meta:
verbose_name = '专家获奖/荣誉'
verbose_name_plural = verbose_name
def __str__(self):
return self.name

View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

View File

@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.

View File

@ -2,6 +2,12 @@ from django.contrib import admin
from simple_history.admin import SimpleHistoryAdmin from simple_history.admin import SimpleHistoryAdmin
from .models import User, Organization, Role, Permission, DictType, Dict, File from .models import User, Organization, Role, Permission, DictType, Dict, File
# Register your models here. # Register your models here.
admin.site.site_header = '专家库管理系统'
admin.site.site_title = '专家库'
admin.site.index_title = '后台管理'
admin.site.register(User) admin.site.register(User)
admin.site.register(Organization) admin.site.register(Organization)
admin.site.register(Role) admin.site.register(Role)

View File

@ -0,0 +1,18 @@
# Generated by Django 3.1.8 on 2021-06-02 06:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('system', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='user',
name='first_name',
field=models.CharField(blank=True, max_length=150, verbose_name='first name'),
),
]

Binary file not shown.

View File

@ -38,6 +38,7 @@ INSTALLED_APPS = [
'django.contrib.sessions', 'django.contrib.sessions',
'django.contrib.messages', 'django.contrib.messages',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'django.contrib.admindocs',
'corsheaders', 'corsheaders',
'django_celery_beat', 'django_celery_beat',
'drf_yasg', 'drf_yasg',
@ -45,7 +46,8 @@ INSTALLED_APPS = [
"django_filters", "django_filters",
'simple_history', 'simple_history',
'apps.system', 'apps.system',
'apps.monitor' 'apps.monitor',
'apps.expert'
] ]
MIDDLEWARE = [ MIDDLEWARE = [

View File

@ -40,6 +40,7 @@ schema_view = get_schema_view(
) )
urlpatterns = [ urlpatterns = [
path('admin/doc/', include('django.contrib.admindocs.urls')),
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'), path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'), path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),