Merge branch 'master' of 10.7.100.160:/job/safesite

This commit is contained in:
caoqianming 2019-10-16 15:48:52 +08:00
commit 5c3d5b204f
15 changed files with 1077 additions and 801 deletions

View File

@ -1,4 +1,4 @@
from django.contrib import admin from django.contrib import admin
from . import models from . import models
# Register your models here. # Register your models here.
admin.site.register(models.Groups) admin.site.register(models.Groups)

7
groups/forms.py Normal file
View File

@ -0,0 +1,7 @@
from django import forms
from captcha.fields import CaptchaField
class GroupsForm(forms.Form):
username = forms.CharField(label="用户名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': "Username",'autofocus': ''}))
password = forms.CharField(label="密码", max_length=256, widget=forms.PasswordInput(attrs={'class': 'form-control','placeholder': "Password"}))
captcha = CaptchaField(label='验证码', error_messages={"invalid":"验证码错误"})

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@ -0,0 +1,41 @@
body {
height: 100%;
background-image: url('../images/pic1.jpg');
}
.form-login {
width: 100%;
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-login{
margin-top:80px;
font-weight: 400;
}
.form-login .form-control {
position: relative;
box-sizing: border-box;
height: auto;
padding: 10px;
font-size: 16px;
}
.form-login .form-control:focus {
z-index: 2;
}
.form-login input[type="text"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.form-login input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
form a{
display: inline-block;
margin-top:25px;
font-size: 12px;
line-height: 10px;
}

View File

@ -0,0 +1,210 @@
<!DOCTYPE html>
<html>
<head>
{% load static %}
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{% block title %} title {% endblock %}</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="{% static 'groups/bower_components/bootstrap/dist/css/bootstrap.min.css' %}">
<!-- Font Awesome -->
<link rel="stylesheet" href="{% static 'groups/bower_components/font-awesome/css/font-awesome.min.css' %}">
<!-- Ionicons -->
<link rel="stylesheet" href="{% static 'groups/bower_components/Ionicons/css/ionicons.min.css' %}">
<!-- Theme style -->
<link rel="stylesheet" href="{% static 'groups/dist/css/AdminLTE.min.css' %}">
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="{% static 'groups/dist/css/skins/_all-skins.min.css' %}">
<!-- Morris chart -->
<link rel="stylesheet" href="{% static 'groups/bower_components/morris.js/morris.css' %}">
<!-- jvectormap -->
<link rel="stylesheet" href="{% static 'groups/bower_components/jvectormap/jquery-jvectormap.css' %}">
<!-- Date Picker -->
<link rel="stylesheet" href="{% static 'groups/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css' %}">
<!-- Daterange picker -->
<link rel="stylesheet" href="{% static 'groups/bower_components/bootstrap-daterangepicker/daterangepicker.css' %}">
<!-- bootstrap wysihtml5 - text editor -->
<link rel="stylesheet" href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Google Font -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">
<header class="main-header">
<!-- Logo -->
<a href="index2.html" class="logo">
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini"></span>
<!-- logo for regular state and mobile devices -->
<span class="logo-lg"><b>集团后台</b></span>
</a>
<!-- Header Navbar: style can be found in header.less -->
<nav class="navbar navbar-static-top">
<!-- Sidebar toggle button-->
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
<span class="sr-only">Toggle navigation</span>
</a>
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
<!-- User Account: style can be found in dropdown.less -->
<li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<span class="hidden-xs">{{ request.session.user_name }}</span>
</a>
<ul class="dropdown-menu">
<!-- Menu Footer-->
<li class="user-footer">
<div class="pull-right">
<a href="{% url 'groups_logout' %}" class="btn btn-default btn-flat">退出</a>
</div>
</li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
<!-- Left side column. contains the logo and sidebar -->
<aside class="main-sidebar">
<!-- sidebar: style can be found in sidebar.less -->
<section class="sidebar">
<!-- Sidebar user panel -->
<div class="user-panel">
<div class="pull-left image">
<img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
</div>
<div class="pull-left info">
<p>{{ request.session.user_name }}</p>
</div>
</div>
<!-- sidebar menu: : style can be found in sidebar.less -->
<ul class="sidebar-menu" data-widget="tree">
<li class="header">导航</li>
<li>
<a href="{% url 'groups_index' %}">
<i class="fa fa-th"></i> <span>主页</span>
<span class="pull-right-container">
<small class="label pull-right bg-green"></small>
</span>
</a>
</li>
<li>
<a href="{% url 'groups_company' %}">
<i class="fa fa-th"></i> <span>公司列表</span>
<span class="pull-right-container">
<small class="label pull-right bg-green"></small>
</span>
</a>
</li>
<li class="treeview">
<a href="#">
<i class="fa fa-pie-chart"></i>
<span>统计信息</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="{% url 'groups_job' %}"><i class="fa fa-circle-o"></i> 作业</a></li>
<li><a href="{% url 'groups_job' %}"><i class="fa fa-circle-o"></i> 行为</a></li>
<li><a href="{% url 'groups_job' %}"><i class="fa fa-circle-o"></i> 未遂</a></li>
<li><a href="{% url 'groups_job' %}"><i class="fa fa-circle-o"></i> 风险</a></li>
<li><a href="{% url 'groups_job' %}"><i class="fa fa-circle-o"></i> 培训</a></li>
<li><a href="{% url 'groups_job' %}"><i class="fa fa-circle-o"></i> 考试</a></li>
</ul>
</li>
</ul>
</section>
<!-- /.sidebar -->
</aside>
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
Dashboard
<small>Control panel</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
<li class="active">Dashboard</li>
</ol>
</section>
{% block content %}
<!-- Main content -->
<section class="content">
<h3>content</h3>
</section>
<!-- /.content -->
{% endblock %}
</div>
<!-- /.content-wrapper -->
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 2.4.18
</div>
<strong>Copyright &copy; 2014-2019 <a href="https://adminlte.io">AdminLTeeeeeeeeeeE</a>.</strong> All rights
reserved.
</footer>
<!-- Add the sidebar's background. This div must be placed
immediately after the control sidebar -->
<div class="control-sidebar-bg"></div>
</div>
<!-- ./wrapper -->
<!-- jQuery 3 -->
<script src="{% static 'groups/bower_components/jquery/dist/jquery.min.js' %}"></script>
<!-- jQuery UI 1.11.4 -->
<script src="{% static 'groups/bower_components/jquery-ui/jquery-ui.min.js' %}"></script>
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
<script>
$.widget.bridge('uibutton', $.ui.button);
</script>
<!-- Bootstrap 3.3.7 -->
<script src="{% static 'groups/bower_components/bootstrap/dist/js/bootstrap.min.js' %}"></script>
<!-- Morris.js charts -->
<script src="{% static 'groups/bower_components/raphael/raphael.min.js' %}"></script>
<script src="{% static 'groups/bower_components/morris.js/morris.min.js' %}"></script>
<!-- Sparkline -->
<script src="{% static 'groups/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js' %}"></script>
<!-- jvectormap -->
<script src="{% static 'groups/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js' %}"></script>
<script src="{% static 'groups/plugins/jvectormap/jquery-jvectormap-world-mill-en.js' %}"></script>
<!-- jQuery Knob Chart -->
<script src="{% static 'groups/bower_components/jquery-knob/dist/jquery.knob.min.js' %}"></script>
<!-- daterangepicker -->
<script src="{% static 'groups/bower_components/moment/min/moment.min.js' %}"></script>
<script src="{% static 'groups/bower_components/bootstrap-daterangepicker/daterangepicker.js' %}"></script>
<!-- datepicker -->
<script src="{% static 'groups/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js' %}"></script>
<!-- Bootstrap WYSIHTML5 -->
<script src="{% static 'groups/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js' %}"></script>
<!-- Slimscroll -->
<script src="{% static 'groups/bower_components/jquery-slimscroll/jquery.slimscroll.min.js' %}"></script>
<!-- FastClick -->
<script src="{% static 'groups/bower_components/fastclick/lib/fastclick.js' %}"></script>
<!-- AdminLTE App -->
<script src="{% static 'groups/dist/js/adminlte.min.js' %}"></script>
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
<script src="{% static 'groups/dist/js/pages/dashboard.js' %}"></script>
<!-- AdminLTE for demo purposes -->
<script src="{% static 'groups/dist/js/demo.js' %}"></script>
</body>
</html>

View File

@ -0,0 +1,56 @@
{% extends "./base.html" %}
{% block title %}company list{% endblock %}
{% block content %}
<!-- Main content -->
<section class="content">
<div class="row">
<div class="col-xs-12">
<!-- /.box -->
<div class="box">
<div class="box-header">
<h3 class="box-title">Data Table With Full Features</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<div id="example1_wrapper" class="dataTables_wrapper form-inline dt-bootstrap"><div class="row"><div class="col-sm-6"><div class="dataTables_length" id="example1_length"><label>Show <select name="example1_length" aria-controls="example1" class="form-control input-sm"><option value="10">10</option><option value="25">25</option><option value="50">50</option><option value="100">100</option></select> entries</label></div></div><div class="col-sm-6"><div id="example1_filter" class="dataTables_filter"><label>Search:<input type="search" class="form-control input-sm" placeholder="" aria-controls="example1"></label></div></div></div><div class="row"><div class="col-sm-12"><table id="example1" class="table table-bordered table-striped dataTable" role="grid" aria-describedby="example1_info">
<thead>
<tr role="row"><th class="sorting_asc" tabindex="0" aria-controls="example1" rowspan="1" colspan="1" style="width: 164.933px;" aria-sort="ascending" aria-label="Rendering engine: activate to sort column descending">Rendering engine</th><th class="sorting" tabindex="0" aria-controls="example1" rowspan="1" colspan="1" style="width: 204.15px;" aria-label="Browser: activate to sort column ascending">Browser</th><th class="sorting" tabindex="0" aria-controls="example1" rowspan="1" colspan="1" style="width: 179.933px;" aria-label="Platform(s): activate to sort column ascending">Platform(s)</th><th class="sorting" tabindex="0" aria-controls="example1" rowspan="1" colspan="1" style="width: 140.467px;" aria-label="Engine version: activate to sort column ascending">Engine version</th><th class="sorting" tabindex="0" aria-controls="example1" rowspan="1" colspan="1" style="width: 99.1833px;" aria-label="CSS grade: activate to sort column ascending">CSS grade</th></tr>
</thead>
<tbody>
<tr role="row" class="odd">
<td class="sorting_1">Gecko</td>
<td>Firefox 1.0</td>
<td>Win 98+ / OSX.2+</td>
<td>1.7</td>
<td>A</td>
</tr><tr role="row" class="even">
<td class="sorting_1">Gecko</td>
<td>Camino 1.5</td>
<td>OSX.3+</td>
<td>1.8</td>
<td>A</td>
</tr><tr role="row" class="even">
<td class="sorting_1">Gecko</td>
<td>Mozilla 1.0</td>
<td>Win 95+ / OSX.1+</td>
<td>1</td>
<td>A</td>
</tr></tbody>
<tfoot>
<tr><th rowspan="1" colspan="1">Rendering engine</th><th rowspan="1" colspan="1">Browser</th><th rowspan="1" colspan="1">Platform(s)</th><th rowspan="1" colspan="1">Engine version</th><th rowspan="1" colspan="1">CSS grade</th></tr>
</tfoot>
</table></div></div><div class="row"><div class="col-sm-5"><div class="dataTables_info" id="example1_info" role="status" aria-live="polite">Showing 1 to 10 of 57 entries</div></div><div class="col-sm-7"><div class="dataTables_paginate paging_simple_numbers" id="example1_paginate"><ul class="pagination"><li class="paginate_button previous disabled" id="example1_previous"><a href="#" aria-controls="example1" data-dt-idx="0" tabindex="0">Previous</a></li><li class="paginate_button active"><a href="#" aria-controls="example1" data-dt-idx="1" tabindex="0">1</a></li><li class="paginate_button "><a href="#" aria-controls="example1" data-dt-idx="2" tabindex="0">2</a></li><li class="paginate_button "><a href="#" aria-controls="example1" data-dt-idx="3" tabindex="0">3</a></li><li class="paginate_button "><a href="#" aria-controls="example1" data-dt-idx="4" tabindex="0">4</a></li><li class="paginate_button "><a href="#" aria-controls="example1" data-dt-idx="5" tabindex="0">5</a></li><li class="paginate_button "><a href="#" aria-controls="example1" data-dt-idx="6" tabindex="0">6</a></li><li class="paginate_button next" id="example1_next"><a href="#" aria-controls="example1" data-dt-idx="7" tabindex="0">Next</a></li></ul></div></div></div></div>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
{% endblock %}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,98 @@
{% extends "./base.html" %}
{% block title %}jobs{% endblock %}
{% block content %}
<!-- Main content -->
<section class="content">
<div class="callout callout-warning">
<h4>Warning!</h4>
<p><b>Morris.js</b> charts are no longer maintained by its author. We would recommend using any of the other
charts that come with the template.</p>
</div>
<div class="row">
<div class="col-md-6">
<!-- AREA CHART -->
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Area Chart</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
</button>
<button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
</div>
</div>
<div class="box-body chart-responsive">
<div class="chart" id="revenue-chart" style="height: 300px;"></div>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
<!-- DONUT CHART -->
<div class="box box-danger">
<div class="box-header with-border">
<h3 class="box-title">Donut Chart</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
</button>
<button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
</div>
</div>
<div class="box-body chart-responsive">
<div class="chart" id="sales-chart" style="height: 300px; position: relative;"></div>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col (LEFT) -->
<div class="col-md-6">
<!-- LINE CHART -->
<div class="box box-info">
<div class="box-header with-border">
<h3 class="box-title">Line Chart</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
</button>
<button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
</div>
</div>
<div class="box-body chart-responsive">
<div class="chart" id="line-chart" style="height: 300px;"></div>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
<!-- BAR CHART -->
<div class="box box-success">
<div class="box-header with-border">
<h3 class="box-title">Bar Chart</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
</button>
<button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
</div>
</div>
<div class="box-body chart-responsive">
<div class="chart" id="bar-chart" style="height: 300px;"></div>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col (RIGHT) -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
{% endblock %}

View File

@ -0,0 +1,66 @@
{% load static %}
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- 上述meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<!-- Bootstrap CSS -->
<link href="{% static 'groups/bower_components/bootstrap/dist/css/bootstrap.min.css' %}" rel="stylesheet"/>
<link href="{% static 'groups/login/login.css' %}" rel="stylesheet"/>
<title>登录</title>
</head>
<body>
<div class="container">
<div class="col">
<form class="form-login" action="/groups/login/" method="post">
{% if groups_form.captcha.errors %}
<div class="alert alert-warning">{{ groups_form.captcha.error_messages }}</div>
{% elif message %}
<div class="alert alert-warning">{{ message }}</div>
{% endif %}
{% csrf_token %}
<h3 class="text-center">欢迎登录</h3>
<div class="form-group">
{{ groups_form.username.label_tag }}
{{ groups_form.username}}
</div>
<div class="form-group">
{{ groups_form.password.label_tag }}
{{ groups_form.password }}
</div>
<div class="form-group">
{{ groups_form.captcha.label_tag }}
{{ groups_form.captcha }}
</div>
<div>
<button type="submit" class="btn btn-primary float-right">登录</button>
</div>
</form>
</div>
</div> <!-- /container -->
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="{% static 'groups/bower_components/jquery/dist/jquery.js' %}"></script>
<script src="https://cdn.bootcss.com/popper.js/1.15.0/umd/popper.js"></script>
<script src="{% static 'groups/bower_components/bootstrap/dist/js/bootstrap.min.js' %}"></script>
</body>
</html>
<script>
$(function(){
$('#id_captcha_1').addClass('form-control');
<<<<<<< HEAD
})
=======
});
>>>>>>> dev
$('.captcha').click(function () {
$.getJSON("/groups/refresh_captcha/", function (result) {
$('.captcha').attr('src', result['image_url']);
$('#id_captcha_0').val(result['key'])
});
});
</script>

View File

@ -1,6 +1,14 @@
from django.urls import path from django.urls import path
from django.urls import include
from . import views from . import views
urlpatterns = [ urlpatterns = [
path('', views.index, name='index'), path('', views.index, name='groups_index'),
path('index/', views.index, name='groups_index'),
path('login/', views.login, name='groups_login'),
path('logout/', views.logout, name='groups_logout'),
path('captcha/', include('captcha.urls')),
path('company/', views.company, name='groups_company'),
path('job/', views.job, name='groups_job'),
path('refresh_captcha/', views.refresh_captcha),
] ]

View File

@ -1,8 +1,62 @@
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render from django.shortcuts import render
from django.shortcuts import redirect
from .models import Groups from .models import Groups
from .forms import GroupsForm
def index(request): def index(request):
#latest_question_list = Question.objects.order_by('-pub_date')[:5] if not request.session.get('is_login', None):
return redirect('/groups/login/')
return render(request, 'groups/index.html') return render(request, 'groups/index.html')
def login(request):
# 不允许重复登录
if request.session.get('is_login', None):
return redirect('/groups/index/')
if request.method == "POST":
groups_form = GroupsForm(request.POST)
message = '请检查填写的内容!'
if groups_form.is_valid():
username = groups_form.cleaned_data.get('username')
password = groups_form.cleaned_data.get('password')
try:
user = Groups.objects.get(name=username)
except:
message = '用户不存在!'
return render(request, 'groups/login.html', locals())
if user.password == password:
request.session['is_login'] = True
request.session['user_id'] = user.id
request.session['user_name'] = user.name
return redirect('/groups/index/')
else:
message = '密码不正确!'
return render(request, 'groups/login.html', locals())
else:
return render(request, 'groups/login.html', locals())
groups_form = GroupsForm()
return render(request, 'groups/login.html', locals())
def logout(request):
if not request.session.get('is_login', None):
return redirect('/groups/login')
request.session.flush()
return redirect('/groups/login')
import json
from captcha.models import CaptchaStore
from captcha.helpers import captcha_image_url
def refresh_captcha(request):
hashkey = CaptchaStore.generate_key()
image_url = captcha_image_url(hashkey)
return HttpResponse(json.dumps({'key': hashkey, 'image_url': image_url}), content_type='application/json')
def company(request):
return render(request, 'groups/company.html', locals())
def job(request):
return render(request, 'groups/job.html', locals())

View File

@ -39,6 +39,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'safesite', 'safesite',
'groups', 'groups',
'captcha',
] ]
MIDDLEWARE = [ MIDDLEWARE = [

View File

@ -0,0 +1,35 @@
# Generated by Django 2.1.4 on 2019-09-12 15:10
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('safesite', '0264_auto_20190909_0916'),
]
operations = [
migrations.CreateModel(
name='CompanyInfo',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=64, verbose_name='公司名称')),
('nature', models.SmallIntegerField(choices=[(0, '国企'), (1, '私企')], default=0, verbose_name='企业性质')),
('address', models.CharField(max_length=128, verbose_name='公司地址')),
('fixed_assets', models.IntegerField(blank=True, null=True, verbose_name='固定资产')),
('website', models.CharField(blank=True, max_length=64, null=True, verbose_name='公司网址')),
('peoplenum', models.IntegerField(blank=True, null=True, verbose_name='公司人数')),
('legalperson', models.CharField(blank=True, max_length=24, null=True, verbose_name='法人代表')),
('legalperson_phone', models.CharField(blank=True, max_length=24, null=True, verbose_name='法人电话')),
('liaison', models.CharField(max_length=24, verbose_name='联系人')),
('liaison_phone', models.CharField(max_length=24, verbose_name='联系人电话')),
('liaison_fax', models.CharField(blank=True, max_length=10, null=True, verbose_name='联系人传真')),
('introduce', models.TextField(blank=True, null=True, verbose_name='公司概况')),
('createtime', models.DateTimeField(auto_now_add=True)),
('modifytime', models.DateTimeField(auto_now=True)),
('partment', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='公司ID')),
],
),
]

View File

@ -0,0 +1,15 @@
# Generated by Django 2.1.4 on 2019-10-09 09:52
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('safesite', '0265_auto_20190917_1716'),
('safesite', '0267_auto_20190917_1543'),
('safesite', '0265_companyinfo'),
]
operations = [
]