#修改
This commit is contained in:
parent
e964957abc
commit
008abe7eba
|
@ -2,6 +2,7 @@ import uuid
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
|
|
||||||
# 权限等级
|
# 权限等级
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +23,8 @@ class Group_type(models.Model):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.type
|
return self.type
|
||||||
|
|
||||||
|
|
||||||
# 矩阵
|
# 矩阵
|
||||||
|
|
||||||
|
|
||||||
|
@ -58,6 +61,7 @@ class Group(models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
# 矩阵管理员
|
# 矩阵管理员
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,6 +76,8 @@ class Group_admin(models.Model):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.group.name
|
return self.group.name
|
||||||
|
|
||||||
|
|
||||||
# 矩阵成员
|
# 矩阵成员
|
||||||
|
|
||||||
|
|
||||||
|
@ -87,6 +93,7 @@ class Group_user(models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.user.username
|
return self.user.username
|
||||||
|
|
||||||
|
|
||||||
# 单位类型
|
# 单位类型
|
||||||
|
|
||||||
|
|
||||||
|
@ -118,8 +125,8 @@ class Organization(models.Model):
|
||||||
directly = models.CharField('单位类型', max_length=256, null=True, blank=True)
|
directly = models.CharField('单位类型', max_length=256, null=True, blank=True)
|
||||||
status = models.CharField('状态', max_length=256, null=True, blank=True)
|
status = models.CharField('状态', max_length=256, null=True, blank=True)
|
||||||
|
|
||||||
#20201014新添加字段
|
# 20201014新添加字段
|
||||||
id_code = models.CharField('单位唯一标识码',max_length=256,null=True,blank=True)
|
id_code = models.CharField('单位唯一标识码', max_length=256, null=True, blank=True)
|
||||||
|
|
||||||
created = models.DateTimeField('创建时间', auto_now_add=True)
|
created = models.DateTimeField('创建时间', auto_now_add=True)
|
||||||
updated = models.DateTimeField('更新时间', auto_now=True)
|
updated = models.DateTimeField('更新时间', auto_now=True)
|
||||||
|
@ -147,8 +154,8 @@ class Userprofile(models.Model):
|
||||||
Organization, on_delete=models.CASCADE, null=True, blank=True)
|
Organization, on_delete=models.CASCADE, null=True, blank=True)
|
||||||
# 用户状态:注册进来默认为0,为未审核状态,审核后status=1
|
# 用户状态:注册进来默认为0,为未审核状态,审核后status=1
|
||||||
status = models.IntegerField('用户状态', null=True, blank=True, default=0)
|
status = models.IntegerField('用户状态', null=True, blank=True, default=0)
|
||||||
#20201017新增字段(职位)
|
# 20201017新增字段(职位)
|
||||||
zhiwei = models.CharField('职位',max_length=256,null=True,blank=True)
|
zhiwei = models.CharField('职位', max_length=256, null=True, blank=True)
|
||||||
created = models.DateTimeField('创建时间', auto_now_add=True)
|
created = models.DateTimeField('创建时间', auto_now_add=True)
|
||||||
updated = models.DateTimeField('更新时间', auto_now=True)
|
updated = models.DateTimeField('更新时间', auto_now=True)
|
||||||
|
|
||||||
|
@ -186,6 +193,15 @@ def create_user_profile(sender, instance, created, **kwargs):
|
||||||
|
|
||||||
|
|
||||||
class NewMedia(models.Model):
|
class NewMedia(models.Model):
|
||||||
|
"""
|
||||||
|
status:
|
||||||
|
'0': '已删除',
|
||||||
|
'1': '添加申请市级审核中',
|
||||||
|
'2': '添加申请省级审核中',
|
||||||
|
'3': '正常',
|
||||||
|
'4': '注销申请市级审核中',
|
||||||
|
'5': '注销申请省级审核中',
|
||||||
|
"""
|
||||||
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
|
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
|
||||||
code = models.CharField('微信公众号', max_length=256, null=True, blank=True)
|
code = models.CharField('微信公众号', max_length=256, null=True, blank=True)
|
||||||
alias = models.CharField('别名', max_length=256, null=True, blank=True)
|
alias = models.CharField('别名', max_length=256, null=True, blank=True)
|
||||||
|
@ -199,10 +215,11 @@ class NewMedia(models.Model):
|
||||||
remark = models.CharField('备注', null=True, blank=True, max_length=2560)
|
remark = models.CharField('备注', null=True, blank=True, max_length=2560)
|
||||||
created = models.DateTimeField('创建时间', auto_now_add=True)
|
created = models.DateTimeField('创建时间', auto_now_add=True)
|
||||||
updated = models.DateTimeField('更新时间', auto_now=True)
|
updated = models.DateTimeField('更新时间', auto_now=True)
|
||||||
#20201015新增字段
|
# 20201015新增字段
|
||||||
identificationcode = models.CharField('新媒体标识码',max_length=256,null=True,blank=True)
|
identificationcode = models.CharField('新媒体标识码', max_length=256, null=True, blank=True)
|
||||||
function = models.CharField('功能',max_length=256,null=True,blank=True)
|
function = models.CharField('功能', max_length=256, null=True, blank=True)
|
||||||
articleurl = models.TextField('文章URL',null=True,blank=True)
|
articleurl = models.TextField('文章URL', null=True, blank=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
ordering = ["-created"]
|
ordering = ["-created"]
|
||||||
|
@ -549,6 +566,8 @@ class Douyin_data(models.Model):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.mewnedia.code
|
return self.mewnedia.code
|
||||||
|
|
||||||
|
|
||||||
# 其他新媒体
|
# 其他新媒体
|
||||||
|
|
||||||
|
|
||||||
|
@ -559,6 +578,7 @@ class Qita(NewMedia):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.qitaid
|
return self.qitaid
|
||||||
|
|
||||||
|
|
||||||
# 其他新媒体监测
|
# 其他新媒体监测
|
||||||
|
|
||||||
|
|
||||||
|
@ -576,6 +596,8 @@ class Qita_jc(models.Model):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.mewnedia.name
|
return self.mewnedia.name
|
||||||
|
|
||||||
|
|
||||||
# 5级地名库
|
# 5级地名库
|
||||||
|
|
||||||
|
|
||||||
|
@ -620,8 +642,9 @@ class News(models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.title
|
return self.title
|
||||||
|
|
||||||
#手机验证码验证表
|
|
||||||
|
# 手机验证码验证表
|
||||||
class CheckCode(models.Model):
|
class CheckCode(models.Model):
|
||||||
phone_code = models.CharField('手机验证码',max_length=256,null=True,blank=True)
|
phone_code = models.CharField('手机验证码', max_length=256, null=True, blank=True)
|
||||||
phone = models.CharField('电话号',max_length=256,null=True,blank=True)
|
phone = models.CharField('电话号', max_length=256, null=True, blank=True)
|
||||||
c_time =models.DateTimeField('时间', auto_now_add=True)
|
c_time = models.DateTimeField('时间', auto_now_add=True)
|
||||||
|
|
|
@ -0,0 +1,145 @@
|
||||||
|
{% extends 'dashboard/base/base.html' %}
|
||||||
|
{% load static %}
|
||||||
|
{% block content %}
|
||||||
|
<body class=" ">
|
||||||
|
<!-- START TOPBAR -->
|
||||||
|
|
||||||
|
<!-- START CONTAINER -->
|
||||||
|
<div class="page-container row-fluid">
|
||||||
|
|
||||||
|
<div class="page-sidebar ">
|
||||||
|
{% include 'dashboard/base/left.html' %}
|
||||||
|
</div>
|
||||||
|
<section id="main-content" class=" ">
|
||||||
|
<section class="wrapper" style='margin-top:60px;display:inline-block;width:100%;padding:15px 0 0 15px;'>
|
||||||
|
{% if messages %}
|
||||||
|
<div class="alert alert-success alert-dismissible" role="alert">
|
||||||
|
<button type="button" class="close" data-dismiss="alert">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
<span class="sr-only">Close</span>
|
||||||
|
</button>
|
||||||
|
{% for message in messages %}
|
||||||
|
{{ message }}.<br/>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class='col-lg-12 col-md-12 col-sm-12 col-xs-12'>
|
||||||
|
<div class="page-title">
|
||||||
|
|
||||||
|
<div class="pull-left">
|
||||||
|
<h1 class="title">个人信息完善</h1></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
|
<div class="col-lg-12 col-md-12 col-xs-12 col-sm-12">
|
||||||
|
<section class="box ">
|
||||||
|
<header class="panel_header">
|
||||||
|
<h2 class="title pull-left">用户信息</h2>
|
||||||
|
</header>
|
||||||
|
<div class="content-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-8 col-sm-9 col-xs-10">
|
||||||
|
<form method="post"
|
||||||
|
action="{% url 'user-improve-personal-information' usee.id %}"
|
||||||
|
enctype="multipart/form-data">{% csrf_token %}
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="name">账号</label>
|
||||||
|
<div class="controls">
|
||||||
|
<input type="text" class="form-control" name="name"
|
||||||
|
value="{{ usee.username }}" disabled>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="organization">单位</label>
|
||||||
|
<div class="input-group main-search">
|
||||||
|
<input type="text" class="form-control" placeholder="请输入关键字"
|
||||||
|
style="height: 40px;width: 985px;opacity: .9 "
|
||||||
|
name="organization">
|
||||||
|
<div class="input-group-btn" style="display: none">
|
||||||
|
<button class="btn btn-default" type="button">
|
||||||
|
<span class="glyphicon glyphicon-search"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="autocomplete-panel" style="z-index: 9999">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="name">姓名</label>
|
||||||
|
<div class="controls">
|
||||||
|
<input type="text" class="form-control" name="name"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="email">邮箱</label>
|
||||||
|
<div class="controls">
|
||||||
|
<input type="text" class="form-control" name="email"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="image">头像
|
||||||
|
<div class="controls">
|
||||||
|
<input type="file" name="image">
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="password">密码<br/>
|
||||||
|
<input type="password" name="password" id="user_pass" class="input"
|
||||||
|
value="" size="20"/></label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="confirm_password">确认密码<br/>
|
||||||
|
<input type="password" name="confirm_password" id="user_pass1"
|
||||||
|
class="input" value=""
|
||||||
|
size="20"/></label>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary" style="margin-top: 50px">提交
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<div class="chatapi-windows "></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
{% endblock %}
|
||||||
|
{% block add_js %}
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
$('.main-search input').focus(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
$("#history_query").hide()
|
||||||
|
var width = $(this).width();
|
||||||
|
var position = $(this).position();
|
||||||
|
var val = $(this).val();
|
||||||
|
var params = {keyword: val}
|
||||||
|
if (val) {
|
||||||
|
$('.autocomplete-panel').load('/get/organization/' + '?' + $.param(params));
|
||||||
|
}
|
||||||
|
$('.autocomplete-panel').css({
|
||||||
|
width: width + 12,
|
||||||
|
top: position.top + 34,
|
||||||
|
left: position.left + 5
|
||||||
|
}).show();
|
||||||
|
}).blur(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
}).on('input', function (e) {
|
||||||
|
var val = $(this).val();
|
||||||
|
var params = {keyword: val}
|
||||||
|
$('.autocomplete-panel').load('/get/organization/' + '?' + $.param(params))
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
||||||
|
|
|
@ -7,6 +7,8 @@ urlpatterns = [
|
||||||
path('index/', views.index, name='dashboard-index'),
|
path('index/', views.index, name='dashboard-index'),
|
||||||
path('', views.user_login, name='dashboard-login'),
|
path('', views.user_login, name='dashboard-login'),
|
||||||
path('user/login/for/phone/', views.user_login_for_phone, name='dashboard-login-for-phone'),
|
path('user/login/for/phone/', views.user_login_for_phone, name='dashboard-login-for-phone'),
|
||||||
|
#手机用户第一次登录后完善个人信息
|
||||||
|
path('user/improve/personal/information/<str:pk>/',views.improve_personal_information,name = 'user-improve-personal-information'),
|
||||||
#发送手机验证码
|
#发送手机验证码
|
||||||
path('author/code/',views.author_code,name='author-code'),
|
path('author/code/',views.author_code,name='author-code'),
|
||||||
path('refresh_captcha/', views.refresh_captcha, name='refresh-captcha'),
|
path('refresh_captcha/', views.refresh_captcha, name='refresh-captcha'),
|
||||||
|
|
|
@ -2,6 +2,8 @@ import csv
|
||||||
import json
|
import json
|
||||||
import http.client
|
import http.client
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
from django.contrib.auth.hashers import make_password
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
import time
|
import time
|
||||||
from urllib import parse
|
from urllib import parse
|
||||||
|
@ -95,25 +97,30 @@ def user_login_for_phone(request):
|
||||||
p_code = request.POST.get('check_code')
|
p_code = request.POST.get('check_code')
|
||||||
phone = request.POST.get('phone')
|
phone = request.POST.get('phone')
|
||||||
print(phone, p_code)
|
print(phone, p_code)
|
||||||
results = CheckCode.objects.filter(phone=18119305139).count()
|
results = CheckCode.objects.filter(phone=phone).count()
|
||||||
print(str(results) + "11111111111111111")
|
print(str(results) + "11111111111111111")
|
||||||
# try:
|
# try:
|
||||||
|
res = User.objects.filter(username=phone).count()
|
||||||
|
if res > 0:
|
||||||
|
messages.error(request, '您的账号已经存在,请您使用密码登录!!!')
|
||||||
|
return HttpResponseRedirect('/')
|
||||||
if results > 0:
|
if results > 0:
|
||||||
check_code = CheckCode.objects.get(phone_code=p_code, phone=phone)
|
check_code = CheckCode.objects.get(phone_code=p_code, phone=phone)
|
||||||
if User.objects.filter(username=phone).count() > 0:
|
if User.objects.filter(username=phone).count() > 0:
|
||||||
user = User.objects.get(username=phone)
|
user = User.objects.get(username=phone)
|
||||||
login(request, user, backend='django.contrib.auth.backends.ModelBackend')
|
login(request, user, backend='django.contrib.auth.backends.ModelBackend')
|
||||||
# check_code.delete()
|
# check_code.delete()
|
||||||
return HttpResponseRedirect('/index/')
|
|
||||||
|
return HttpResponseRedirect('/user/improve/personal/information/%s/' % (user.id))
|
||||||
else:
|
else:
|
||||||
user = User(username=phone)
|
user = User(username=phone, last_login=timezone.now())
|
||||||
|
|
||||||
user.save()
|
user.save()
|
||||||
userprofile = Userprofile(user_id=user.id, image='default.png')
|
# userprofile = Userprofile(user_id=user.id, image='default.png')
|
||||||
userprofile.save()
|
# userprofile.save()
|
||||||
u = authenticate(username=phone)
|
u = authenticate(username=phone)
|
||||||
login(request, u, backend='django.contrib.auth.backends.ModelBackend')
|
login(request, u, backend='django.contrib.auth.backends.ModelBackend')
|
||||||
return HttpResponseRedirect('/index/')
|
return HttpResponseRedirect('/user/improve/personal/information/%s/' % (user.id))
|
||||||
# if float(time.time()) - float(check_code.c_time) > 60:
|
# if float(time.time()) - float(check_code.c_time) > 60:
|
||||||
# check_code.delete()
|
# check_code.delete()
|
||||||
# return '验证码超时已被删除'
|
# return '验证码超时已被删除'
|
||||||
|
@ -126,6 +133,46 @@ def user_login_for_phone(request):
|
||||||
return render(request, 'dashboard/login-for-phone.html')
|
return render(request, 'dashboard/login-for-phone.html')
|
||||||
|
|
||||||
|
|
||||||
|
def improve_personal_information(request, pk):
|
||||||
|
name = None
|
||||||
|
email = None
|
||||||
|
image = None
|
||||||
|
password = None
|
||||||
|
confirm_password = None
|
||||||
|
o_id = None
|
||||||
|
user = User.objects.get(id=pk)
|
||||||
|
if request.method == 'POST':
|
||||||
|
o = request.POST.get('organization')
|
||||||
|
if Organization.objects.get(name=o):
|
||||||
|
o_id = Organization.objects.get(name=o).id
|
||||||
|
else:
|
||||||
|
messages.error(request,'您填写的单位不存在!!!')
|
||||||
|
if request.POST.get('name'):
|
||||||
|
name = request.POST.get('name')
|
||||||
|
else:
|
||||||
|
messages.error(request,'请输入您的姓名!!!')
|
||||||
|
if request.POST.get('email'):
|
||||||
|
email = request.POST.get('email')
|
||||||
|
else:
|
||||||
|
messages.error(request,'请输入您的邮箱!!!')
|
||||||
|
if request.FILES.get('image'):
|
||||||
|
image = request.POST.get('image')
|
||||||
|
else:
|
||||||
|
image = '/profile/user_default.jpg'
|
||||||
|
if request.POST.get('password'):
|
||||||
|
password = request.POST.get('password')
|
||||||
|
else:
|
||||||
|
messages.error(request,'请输入密码')
|
||||||
|
confirm_password = request.POST.get('confirm_password')
|
||||||
|
if password is not None and confirm_password is not None:
|
||||||
|
if password == confirm_password:
|
||||||
|
User.objects.filter(id=pk).update(email=email,password=make_password(password))
|
||||||
|
userprofile=Userprofile(name=name,image=image,organization_id=o_id,user_id=user.id)
|
||||||
|
userprofile.save()
|
||||||
|
messages.success(request,'修改成功')
|
||||||
|
return render(request, 'dashboard/user-improve-personal-information.html', {'usee': user})
|
||||||
|
|
||||||
|
|
||||||
def author_code(request):
|
def author_code(request):
|
||||||
sms_host = "sms.yunpian.com"
|
sms_host = "sms.yunpian.com"
|
||||||
voice_host = "voice.yunpian.com"
|
voice_host = "voice.yunpian.com"
|
||||||
|
@ -147,8 +194,7 @@ def author_code(request):
|
||||||
code += ch
|
code += ch
|
||||||
print(code)
|
print(code)
|
||||||
# tpl_value = {'#dateStart#': '10月1日', '#dateEnd#': '10日', '#type#': '微信公众号', '#name#': code}
|
# tpl_value = {'#dateStart#': '10月1日', '#dateEnd#': '10日', '#type#': '微信公众号', '#name#': code}
|
||||||
tpl_value = {'#code#':code}
|
tpl_value = {'#code#': code}
|
||||||
|
|
||||||
|
|
||||||
params = parse.urlencode({
|
params = parse.urlencode({
|
||||||
'apikey': apikey,
|
'apikey': apikey,
|
||||||
|
@ -192,6 +238,7 @@ def register(request):
|
||||||
flag = False
|
flag = False
|
||||||
user_organization = None
|
user_organization = None
|
||||||
sex = None
|
sex = None
|
||||||
|
user_organization = None
|
||||||
hash_key = CaptchaStore.generate_key()
|
hash_key = CaptchaStore.generate_key()
|
||||||
image_url = captcha_image_url(hash_key)
|
image_url = captcha_image_url(hash_key)
|
||||||
organization = Organization.objects.filter(status='1')
|
organization = Organization.objects.filter(status='1')
|
||||||
|
@ -200,7 +247,11 @@ def register(request):
|
||||||
messages.error(request, '请选择单位')
|
messages.error(request, '请选择单位')
|
||||||
else:
|
else:
|
||||||
o = request.POST.get('organization')
|
o = request.POST.get('organization')
|
||||||
user_organization = Organization.objects.get(name=o).id
|
res = Organization.objects.filter(name=o).count()
|
||||||
|
if res > 0:
|
||||||
|
user_organization = Organization.objects.get(name=o).id
|
||||||
|
else:
|
||||||
|
messages.error(request,'您填写的单位不存在')
|
||||||
if not request.POST.get('name'):
|
if not request.POST.get('name'):
|
||||||
messages.error(request, '请输入姓名')
|
messages.error(request, '请输入姓名')
|
||||||
else:
|
else:
|
||||||
|
@ -223,7 +274,7 @@ def register(request):
|
||||||
else:
|
else:
|
||||||
confirm_password = request.POST.get('confirm_password')
|
confirm_password = request.POST.get('confirm_password')
|
||||||
if not request.FILES.get('image'):
|
if not request.FILES.get('image'):
|
||||||
messages.error(request, '请选择头像')
|
image='/profile/user_default.jpg'
|
||||||
else:
|
else:
|
||||||
image = request.FILES.get('image')
|
image = request.FILES.get('image')
|
||||||
print(str(image) + "1111111111111111111111111111111111111111111")
|
print(str(image) + "1111111111111111111111111111111111111111111")
|
||||||
|
@ -252,7 +303,7 @@ def register(request):
|
||||||
return HttpResponseRedirect('/register/')
|
return HttpResponseRedirect('/register/')
|
||||||
|
|
||||||
if username is not None and password is not None and confirm_password is not None and email is not None and flag:
|
if username is not None and password is not None and confirm_password is not None and email is not None and flag:
|
||||||
user = User.objects.create_user(username, email, password,last_login = timezone.now() )
|
user = User.objects.create_user(username, email, password, last_login=timezone.now())
|
||||||
user.is_active = True
|
user.is_active = True
|
||||||
# user.is_staff = True
|
# user.is_staff = True
|
||||||
# user.first_name = phone
|
# user.first_name = phone
|
||||||
|
@ -347,6 +398,7 @@ def get_organization(request):
|
||||||
def wechat_verify(request):
|
def wechat_verify(request):
|
||||||
return HttpResponse("11833201729252855821")
|
return HttpResponse("11833201729252855821")
|
||||||
|
|
||||||
|
|
||||||
def import_user(request):
|
def import_user(request):
|
||||||
with open('F:/总.csv') as csvfile:
|
with open('F:/总.csv') as csvfile:
|
||||||
reader = csv.reader(csvfile)
|
reader = csv.reader(csvfile)
|
||||||
|
@ -366,4 +418,4 @@ def import_user(request):
|
||||||
u.save()
|
u.save()
|
||||||
except:
|
except:
|
||||||
print(phone)
|
print(phone)
|
||||||
return HttpResponse('ok')
|
return HttpResponse('ok')
|
||||||
|
|
|
@ -53,7 +53,11 @@
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select class="form-control" name="user">
|
<select class="form-control" name="user">
|
||||||
{% for u in usee %}
|
{% for u in usee %}
|
||||||
<option value="{{ u.id }}">{{ u.username }}</option>
|
<option value="{{ u.id }}">
|
||||||
|
{% for i in u.userprofile_set.all %}
|
||||||
|
{{ i.name }}----{{ u.username }}----{{ i.organization }}
|
||||||
|
{% endfor %}
|
||||||
|
</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -49,6 +49,28 @@
|
||||||
href="{% url 'group-management-management-admin' %}">我管理的矩阵</a></li>
|
href="{% url 'group-management-management-admin' %}">我管理的矩阵</a></li>
|
||||||
<li role="presentation" style="margin-top: 20px"><a
|
<li role="presentation" style="margin-top: 20px"><a
|
||||||
href="{% url 'group-management-management-user' %}">我加入的矩阵</a></li>
|
href="{% url 'group-management-management-user' %}">我加入的矩阵</a></li>
|
||||||
|
{% if level == 9 %}
|
||||||
|
<li role="presentation" style="margin-top: 20px"><a
|
||||||
|
href="{% url 'group-management-management-superuser' %}">所有的矩阵</a></li>
|
||||||
|
{% endif %}
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title"
|
||||||
|
style="display: inline-block;margin-left: 5%;margin-top: 20px">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">矩阵名称</option>
|
||||||
|
<option value="2">矩阵类型</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 title" style="margin-top: 20px">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字"
|
||||||
|
name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h6 class="title pull-right">我共管理{% if admin_count %}{{ admin_count }}{% else %}
|
<h6 class="title pull-right">我共管理{% if admin_count %}{{ admin_count }}{% else %}
|
||||||
0{% endif %}个矩阵</h6>
|
0{% endif %}个矩阵</h6>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -41,15 +41,39 @@
|
||||||
<header class="panel_header">
|
<header class="panel_header">
|
||||||
{# <h2 class="title pull-left">矩阵列表</h2>#}
|
{# <h2 class="title pull-left">矩阵列表</h2>#}
|
||||||
<ul class="nav nav-pills">
|
<ul class="nav nav-pills">
|
||||||
|
|
||||||
<li role="presentation" class="active" style="margin-top: 20px"><a
|
<li role="presentation" class="active" style="margin-top: 20px"><a
|
||||||
href="{% url 'group-management-management-init' %}">我创建的矩阵</a></li>
|
href="{% url 'group-management-management-init' %}">我创建的矩阵</a></li>
|
||||||
<li role="presentation" style="margin-top: 20px"><a
|
<li role="presentation" style="margin-top: 20px"><a
|
||||||
href="{% url 'group-management-management-admin' %}">我管理的矩阵</a></li>
|
href="{% url 'group-management-management-admin' %}">我管理的矩阵</a></li>
|
||||||
<li role="presentation" style="margin-top: 20px"><a
|
<li role="presentation" style="margin-top: 20px"><a
|
||||||
href="{% url 'group-management-management-user' %}">我加入的矩阵</a></li>
|
href="{% url 'group-management-management-user' %}">我加入的矩阵</a></li>
|
||||||
|
{% if level == 9 %}
|
||||||
|
<li role="presentation" style="margin-top: 20px"><a
|
||||||
|
href="{% url 'group-management-management-superuser' %}">所有的矩阵</a></li>
|
||||||
|
{% endif %}
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title"
|
||||||
|
style="display: inline-block;margin-left: 5%;margin-top: 20px">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">矩阵名称</option>
|
||||||
|
<option value="2">矩阵类型</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 title" style="margin-top: 20px">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字"
|
||||||
|
name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h6 class="title pull-right">我共创建{% if init_count %}{{ init_count }}{% else %}
|
<h6 class="title pull-right">我共创建{% if init_count %}{{ init_count }}{% else %}
|
||||||
0{% endif %}个矩阵</h6>
|
0{% endif %}个矩阵</h6>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</header>
|
</header>
|
||||||
<div class="content-body">
|
<div class="content-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
|
@ -0,0 +1,127 @@
|
||||||
|
{% extends 'dashboard/base/base.html' %}
|
||||||
|
{% load static %}
|
||||||
|
{% block css %}
|
||||||
|
<!-- OTHER SCRIPTS INCLUDED ON THIS PAGE - START -->
|
||||||
|
<link href="{% static 'management/css/uikit.min.css' %}" rel="stylesheet" type="text/css" media="screen"/>
|
||||||
|
<link href="{% static 'management/css/nestable.min.css' %}" rel="stylesheet" type="text/css" media="screen"/>
|
||||||
|
<!-- OTHER SCRIPTS INCLUDED ON THIS PAGE - END -->
|
||||||
|
{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<body class=" "><!-- START TOPBAR -->
|
||||||
|
<div class="page-container row-fluid">
|
||||||
|
<div class="page-sidebar ">
|
||||||
|
{% include 'dashboard/base/left.html' %}
|
||||||
|
</div>
|
||||||
|
<section id="main-content" class=" ">
|
||||||
|
<section class="wrapper" style='margin-top:60px;display:inline-block;width:100%;padding:15px 0 0 15px;'>
|
||||||
|
|
||||||
|
{% if messages %}
|
||||||
|
<div class="alert alert-success alert-dismissible" role="alert">
|
||||||
|
<button type="button" class="close" data-dismiss="alert">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
<span class="sr-only">Close</span>
|
||||||
|
</button>
|
||||||
|
{% for message in messages %}
|
||||||
|
{{ message }}.<br/>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class='col-lg-12 col-md-12 col-sm-12 col-xs-12'>
|
||||||
|
<div class="page-title">
|
||||||
|
|
||||||
|
<div class="pull-left">
|
||||||
|
<h1 class="title">矩阵管理</h1></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<section class="box ">
|
||||||
|
<header class="panel_header">
|
||||||
|
{# <h2 class="title pull-left">矩阵列表</h2>#}
|
||||||
|
<ul class="nav nav-pills">
|
||||||
|
<li role="presentation" style="margin-top: 20px"><a
|
||||||
|
href="{% url 'group-management-management-init' %}">我创建的矩阵</a></li>
|
||||||
|
<li role="presentation" style="margin-top: 20px"><a
|
||||||
|
href="{% url 'group-management-management-admin' %}">我管理的矩阵</a></li>
|
||||||
|
<li role="presentation" style="margin-top: 20px"><a
|
||||||
|
href="{% url 'group-management-management-user' %}">我加入的矩阵</a></li>
|
||||||
|
{% if level == 9 %}
|
||||||
|
<li role="presentation" style="margin-top: 20px" class="active"><a
|
||||||
|
href="{% url 'group-management-management-superuser' %}">所有的矩阵</a></li>
|
||||||
|
{% endif %}
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title"
|
||||||
|
style="display: inline-block;margin-left: 5%;margin-top: 20px">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">矩阵名称</option>
|
||||||
|
<option value="2">矩阵类型</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 title" style="margin-top: 20px">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字"
|
||||||
|
name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<h6 class="title pull-right">共有{% if count %}{{ count }}{% else %}
|
||||||
|
0{% endif %}个矩阵</h6>
|
||||||
|
</ul>
|
||||||
|
</header>
|
||||||
|
<div class="content-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||||
|
<table class="table table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="text-align: center">序号</th>
|
||||||
|
<th style="text-align: center">头像</th>
|
||||||
|
<th style="text-align: center">矩阵名称</th>
|
||||||
|
<th style="text-align: center">矩阵类型</th>
|
||||||
|
<th style="text-align: center">管理员个数</th>
|
||||||
|
<th style="text-align: center">成员个数</th>
|
||||||
|
<th style="text-align: center">状态</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for r in res_g_i %}
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;text-align: center">{{ forloop.counter }}</td>
|
||||||
|
<td style="text-align: center"><img src="{{ r.image }}"
|
||||||
|
style="width: 80px;height: 80px;"
|
||||||
|
class="img-circle"></td>
|
||||||
|
<td style="vertical-align: middle;text-align: center">{{ r.name }}</td>
|
||||||
|
<td style="vertical-align: middle;text-align: center">{{ r.type }}</td>
|
||||||
|
<td style="vertical-align: middle;text-align: center">{{ r.admin_count }}</td>
|
||||||
|
<td style="vertical-align: middle;text-align: center">{{ r.user_count }}</td>
|
||||||
|
<td style="vertical-align: middle;text-align: center">{{ r.status }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="metadata-pagination">
|
||||||
|
{% include 'dashboard/paginator/group-management-paginate.html' %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<div class="chatapi-windows ">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
{% endblock %}
|
||||||
|
{% block add_js %}
|
||||||
|
<script src="{% static 'management/js/uikit.min.js' %}" type="text/javascript"></script>
|
||||||
|
<script src="{% static 'management/js/nestable.min.js' %}" type="text/javascript"></script>
|
||||||
|
{% endblock %}
|
|
@ -49,6 +49,28 @@
|
||||||
href="{% url 'group-management-management-admin' %}">我管理的矩阵</a></li>
|
href="{% url 'group-management-management-admin' %}">我管理的矩阵</a></li>
|
||||||
<li role="presentation" class="active" style="margin-top: 20px"><a
|
<li role="presentation" class="active" style="margin-top: 20px"><a
|
||||||
href="{% url 'group-management-management-user' %}">我加入的矩阵</a></li>
|
href="{% url 'group-management-management-user' %}">我加入的矩阵</a></li>
|
||||||
|
{% if level == 9 %}
|
||||||
|
<li role="presentation" style="margin-top: 20px"><a
|
||||||
|
href="{% url 'group-management-management-superuser' %}">所有的矩阵</a></li>
|
||||||
|
{% endif %}
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title"
|
||||||
|
style="display: inline-block;margin-left: 5%;margin-top: 20px">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">矩阵名称</option>
|
||||||
|
<option value="2">矩阵类型</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 title" style="margin-top: 20px">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字"
|
||||||
|
name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h6 class="title pull-right">我共加入{% if user_count %}{{ user_count }}{% else %}
|
<h6 class="title pull-right">我共加入{% if user_count %}{{ user_count }}{% else %}
|
||||||
0{% endif %}个矩阵</h6>
|
0{% endif %}个矩阵</h6>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -41,19 +41,25 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-8 col-sm-9 col-xs-10">
|
<div class="col-md-8 col-sm-9 col-xs-10">
|
||||||
<form method="post"
|
<form method="post"
|
||||||
action="{% url 'group-user-create' pk %}" enctype="multipart/form-data">{% csrf_token %}
|
action="{% url 'group-user-create' pk %}"
|
||||||
|
enctype="multipart/form-data">{% csrf_token %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="name">矩阵名称</label>
|
<label class="form-label" for="name">矩阵名称</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" class="form-control" name="name" disabled value="{{ group }}">
|
<input type="text" class="form-control" name="name" disabled
|
||||||
|
value="{{ group }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="user">管理员</label>
|
<label class="form-label" for="user">成员</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select class="form-control" name="user">
|
<select class="form-control" name="user">
|
||||||
{% for u in usee %}
|
{% for u in usee %}
|
||||||
<option value="{{ u.id }}">{{ u.username }}</option>
|
<option value="{{ u.id }}">
|
||||||
|
{% for i in u.userprofile_set.all %}
|
||||||
|
{{ i.name }}----{{ u.username }}----{{ i.organization }}
|
||||||
|
{% endfor %}
|
||||||
|
</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -23,6 +23,23 @@
|
||||||
<section class="box ">
|
<section class="box ">
|
||||||
<header class="panel_header">
|
<header class="panel_header">
|
||||||
<h2 class="title pull-left">抖音列表</h2>
|
<h2 class="title pull-left">抖音列表</h2>
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title" style="display: inline-block;margin-left: 5%">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">新媒体名称</option>
|
||||||
|
<option value="2">责任主体</option>
|
||||||
|
<option value="3">行政区划</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 title">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字" name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h2 class="title pull-right" style="margin-right: 30px">抖音总计:{{ douyin_count }}</h2>
|
<h2 class="title pull-right" style="margin-right: 30px">抖音总计:{{ douyin_count }}</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="content-body">
|
<div class="content-body">
|
||||||
|
|
|
@ -23,11 +23,29 @@
|
||||||
<section class="box ">
|
<section class="box ">
|
||||||
<header class="panel_header">
|
<header class="panel_header">
|
||||||
<h2 class="title pull-left">其他新媒体列表</h2>
|
<h2 class="title pull-left">其他新媒体列表</h2>
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title" style="display: inline-block;margin-left: 5%">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">新媒体名称</option>
|
||||||
|
<option value="2">责任主体</option>
|
||||||
|
<option value="3">行政区划</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 title">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字" name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h2 class="title pull-right" style="margin-right: 30px">其他新媒体总计:{{ qita_count }}</h2>
|
<h2 class="title pull-right" style="margin-right: 30px">其他新媒体总计:{{ qita_count }}</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="content-body">
|
<div class="content-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||||
|
|
||||||
<table class="table table-hover">
|
<table class="table table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -23,6 +23,23 @@
|
||||||
<section class="box ">
|
<section class="box ">
|
||||||
<header class="panel_header">
|
<header class="panel_header">
|
||||||
<h2 class="title pull-left">头条列表</h2>
|
<h2 class="title pull-left">头条列表</h2>
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title" style="display: inline-block;margin-left: 5%">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">新媒体名称</option>
|
||||||
|
<option value="2">责任主体</option>
|
||||||
|
<option value="3">行政区划</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 title">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字" name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h2 class="title pull-right" style="margin-right: 30px">头条总计:{{ toutiao_count }}</h2>
|
<h2 class="title pull-right" style="margin-right: 30px">头条总计:{{ toutiao_count }}</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="content-body">
|
<div class="content-body">
|
||||||
|
|
|
@ -23,6 +23,24 @@
|
||||||
<section class="box ">
|
<section class="box ">
|
||||||
<header class="panel_header">
|
<header class="panel_header">
|
||||||
<h2 class="title pull-left">微博列表</h2>
|
<h2 class="title pull-left">微博列表</h2>
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title" style="display: inline-block;margin-left: 5%">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">新媒体名称</option>
|
||||||
|
<option value="2">责任主体</option>
|
||||||
|
<option value="3">行政区划</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 title">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字" name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
<h2 class="title pull-right" style="margin-right: 30px">微博总计:{{ weibo_count }}</h2>
|
<h2 class="title pull-right" style="margin-right: 30px">微博总计:{{ weibo_count }}</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="content-body">
|
<div class="content-body">
|
||||||
|
|
|
@ -23,6 +23,23 @@
|
||||||
<section class="box ">
|
<section class="box ">
|
||||||
<header class="panel_header">
|
<header class="panel_header">
|
||||||
<h2 class="title pull-left">微信公众号列表</h2>
|
<h2 class="title pull-left">微信公众号列表</h2>
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title" style="display: inline-block;margin-left: 5%">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">新媒体名称</option>
|
||||||
|
<option value="2">责任主体</option>
|
||||||
|
<option value="3">行政区划</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 title">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字" name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h2 class="title pull-right" style="margin-right: 30px">微信总计:{{ weixin_count }}</h2>
|
<h2 class="title pull-right" style="margin-right: 30px">微信总计:{{ weixin_count }}</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="content-body">
|
<div class="content-body">
|
||||||
|
|
|
@ -42,6 +42,27 @@
|
||||||
<section class="box ">
|
<section class="box ">
|
||||||
<header class="panel_header">
|
<header class="panel_header">
|
||||||
<h2 class="title pull-left">新闻列表</h2>
|
<h2 class="title pull-left">新闻列表</h2>
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title" style="display: inline-block;margin-left: 5%">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">政策依据</option>
|
||||||
|
<option value="2">基层动态</option>
|
||||||
|
<option value="3">外省动态</option>
|
||||||
|
<option value="4">监测通报</option>
|
||||||
|
<option value="5">舆情热点</option>
|
||||||
|
<option value="6">通知</option>
|
||||||
|
<option value="7">重点新闻</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 title">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字" name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h2 class="title pull-right" style="margin-right: 30px">新闻总计:{{ news_count }}</h2>
|
<h2 class="title pull-right" style="margin-right: 30px">新闻总计:{{ news_count }}</h2>
|
||||||
{# <div class="actions panel_actions pull-right">#}
|
{# <div class="actions panel_actions pull-right">#}
|
||||||
{# <i class="box_toggle fa fa-chevron-down"></i>#}
|
{# <i class="box_toggle fa fa-chevron-down"></i>#}
|
||||||
|
|
|
@ -42,6 +42,22 @@
|
||||||
<section class="box ">
|
<section class="box ">
|
||||||
<header class="panel_header">
|
<header class="panel_header">
|
||||||
<h2 class="title pull-left">单位列表</h2>
|
<h2 class="title pull-left">单位列表</h2>
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title" style="display: inline-block;margin-left: 5%">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">单位名称</option>
|
||||||
|
<option value="2">行政区划</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 title">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字" name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h2 class="title pull-right" style="margin-right: 30px">单位总计:{{ organization_count }}</h2>
|
<h2 class="title pull-right" style="margin-right: 30px">单位总计:{{ organization_count }}</h2>
|
||||||
{# <div class="actions panel_actions pull-right">#}
|
{# <div class="actions panel_actions pull-right">#}
|
||||||
{# <i class="box_toggle fa fa-chevron-down"></i>#}
|
{# <i class="box_toggle fa fa-chevron-down"></i>#}
|
||||||
|
@ -60,7 +76,7 @@
|
||||||
<th style="text-align: center">序号</th>
|
<th style="text-align: center">序号</th>
|
||||||
<th style="text-align: center">图标</th>
|
<th style="text-align: center">图标</th>
|
||||||
<th style="text-align: center">单位名称</th>
|
<th style="text-align: center">单位名称</th>
|
||||||
{# <th style="text-align: center">类型</th>#}
|
{# <th style="text-align: center">类型</th>#}
|
||||||
<th style="text-align: center">行政区划</th>
|
<th style="text-align: center">行政区划</th>
|
||||||
<th style="text-align: center">成员数量</th>
|
<th style="text-align: center">成员数量</th>
|
||||||
<th style="text-align: center">新媒体数量</th>
|
<th style="text-align: center">新媒体数量</th>
|
||||||
|
@ -70,12 +86,12 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for r in res %}
|
{% for r in res %}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align: middle;text-align: center">{{ forloop.counter }}</td>
|
<td style="vertical-align: middle;text-align: center">{{ forloop.counter }}</td>
|
||||||
<td style="vertical-align: middle;text-align: center"><img
|
<td style="vertical-align: middle;text-align: center"><img
|
||||||
src="{{ r.image }}" style="width: 80px;height: 80px;"
|
src="{{ r.image }}" style="width: 80px;height: 80px;"
|
||||||
class="img-circle"></td>
|
class="img-circle"></td>
|
||||||
<td style="vertical-align: middle;text-align: center">{{ r.name }}</td>
|
<td style="vertical-align: middle;text-align: center">{{ r.name }}</td>
|
||||||
{# <td style="vertical-align: middle;text-align: center">{{ r.organizationtype }}</td>#}
|
{# <td style="vertical-align: middle;text-align: center">{{ r.organizationtype }}</td>#}
|
||||||
<td style="vertical-align: middle;text-align: center">{{ r.administrativedivision }}</td>
|
<td style="vertical-align: middle;text-align: center">{{ r.administrativedivision }}</td>
|
||||||
<td style="vertical-align: middle;text-align: center">{{ r.usercount }}</td>
|
<td style="vertical-align: middle;text-align: center">{{ r.usercount }}</td>
|
||||||
<td style="vertical-align: middle;text-align: center">{{ r.mediacount }}</td>
|
<td style="vertical-align: middle;text-align: center">{{ r.mediacount }}</td>
|
||||||
|
|
|
@ -23,6 +23,23 @@
|
||||||
<section class="box ">
|
<section class="box ">
|
||||||
<header class="panel_header">
|
<header class="panel_header">
|
||||||
<h2 class="title pull-left">成员列表</h2>
|
<h2 class="title pull-left">成员列表</h2>
|
||||||
|
<form>
|
||||||
|
<div class="btn-group col-md-2 title" style="display: inline-block;margin-left: 5%">
|
||||||
|
<select class="form-control" name="keytype">
|
||||||
|
<option value="1">姓名</option>
|
||||||
|
<option value="2">单位</option>
|
||||||
|
<option value="3">行政区划</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 title">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" placeholder="输入搜索关键字" name="keyword">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button">搜索</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<h2 class="title pull-right" style="margin-right: 30px">成员总计:{{ user_count }}</h2>
|
<h2 class="title pull-right" style="margin-right: 30px">成员总计:{{ user_count }}</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="content-body">
|
<div class="content-body">
|
||||||
|
@ -45,8 +62,9 @@
|
||||||
{% for u in userallinfo %}
|
{% for u in userallinfo %}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align: middle;text-align: center">{{ forloop.counter }}</td>
|
<td style="vertical-align: middle;text-align: center">{{ forloop.counter }}</td>
|
||||||
<td style="text-align: center"><img src="{{ u.image.url }}" style="width: 80px;height: 80px;"
|
<td style="text-align: center"><img src="{{ u.image.url }}"
|
||||||
class="img-circle"></td>
|
style="width: 80px;height: 80px;"
|
||||||
|
class="img-circle"></td>
|
||||||
<td style="vertical-align: middle;text-align: center">{{ u.name }}</td>
|
<td style="vertical-align: middle;text-align: center">{{ u.name }}</td>
|
||||||
<td style="vertical-align: middle;text-align: center">{{ u.phone }}</td>
|
<td style="vertical-align: middle;text-align: center">{{ u.phone }}</td>
|
||||||
<td style="vertical-align: middle;text-align: center">{{ u.organization }}</td>
|
<td style="vertical-align: middle;text-align: center">{{ u.organization }}</td>
|
||||||
|
|
|
@ -11,6 +11,7 @@ urlpatterns = [
|
||||||
path('group/management/init/', views.group_management_init, name='group-management-management-init'),
|
path('group/management/init/', views.group_management_init, name='group-management-management-init'),
|
||||||
path('group/management/admin/', views.group_management_admin, name='group-management-management-admin'),
|
path('group/management/admin/', views.group_management_admin, name='group-management-management-admin'),
|
||||||
path('group/management/user/', views.group_management_user, name='group-management-management-user'),
|
path('group/management/user/', views.group_management_user, name='group-management-management-user'),
|
||||||
|
path('group/management/super/', views.group_management_superuser, name='group-management-management-superuser'),
|
||||||
path('group/create/', views.group_create, name='group-management-create'),
|
path('group/create/', views.group_create, name='group-management-create'),
|
||||||
path('group/update/<str:pk>/', views.group_update, name='group-management-update'),
|
path('group/update/<str:pk>/', views.group_update, name='group-management-update'),
|
||||||
path('group/delete/<str:pk>/', views.group_delete, name='group-management-delete'),
|
path('group/delete/<str:pk>/', views.group_delete, name='group-management-delete'),
|
||||||
|
|
|
@ -153,6 +153,8 @@ def user_update(request, pk):
|
||||||
def group_management_init(request):
|
def group_management_init(request):
|
||||||
|
|
||||||
user = request.user
|
user = request.user
|
||||||
|
level = Userprofile.objects.get(user_id=user.id).organization.level.level
|
||||||
|
print(level)
|
||||||
init_count = Group.objects.filter(user_id=user.id).count()
|
init_count = Group.objects.filter(user_id=user.id).count()
|
||||||
# 创建的矩阵
|
# 创建的矩阵
|
||||||
group_initer = Group.objects.filter(user_id=user.id).order_by('-created')
|
group_initer = Group.objects.filter(user_id=user.id).order_by('-created')
|
||||||
|
@ -176,13 +178,14 @@ def group_management_init(request):
|
||||||
o1['user_count'] = Group_user.objects.filter(group_id=r_g_i.id).count()
|
o1['user_count'] = Group_user.objects.filter(group_id=r_g_i.id).count()
|
||||||
o1['status'] = r_g_i.status
|
o1['status'] = r_g_i.status
|
||||||
res_g_i.append(o1)
|
res_g_i.append(o1)
|
||||||
return render(request, 'management/group-management-init.html', {'group': group, 'res_g_i': res_g_i,'init_count':init_count})
|
return render(request, 'management/group-management-init.html', {'group': group, 'res_g_i': res_g_i,'init_count':init_count,'level':level})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def group_management_admin(request):
|
def group_management_admin(request):
|
||||||
# 管理的矩阵
|
# 管理的矩阵
|
||||||
user = request.user
|
user = request.user
|
||||||
|
level = Userprofile.objects.get(user_id=user.id).organization.level.level
|
||||||
admin_count = Group_admin.objects.filter(user_id=user.id).count()
|
admin_count = Group_admin.objects.filter(user_id=user.id).count()
|
||||||
group_admin_list = []
|
group_admin_list = []
|
||||||
for g_a in Group_admin.objects.filter(user_id=user.id).order_by('-created'):
|
for g_a in Group_admin.objects.filter(user_id=user.id).order_by('-created'):
|
||||||
|
@ -207,13 +210,14 @@ def group_management_admin(request):
|
||||||
o2['user_count'] = Group_user.objects.filter(group_id=r_g_a.id).count()
|
o2['user_count'] = Group_user.objects.filter(group_id=r_g_a.id).count()
|
||||||
o2['status'] = r_g_a.status
|
o2['status'] = r_g_a.status
|
||||||
res_g_a.append(o2)
|
res_g_a.append(o2)
|
||||||
return render(request, 'management/group-management-admin.html', {'group': group, 'res_g_a': res_g_a,'admin_count':admin_count})
|
return render(request, 'management/group-management-admin.html', {'group': group, 'res_g_a': res_g_a,'admin_count':admin_count,'level':level})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def group_management_user(request):
|
def group_management_user(request):
|
||||||
# 加入的矩阵
|
# 加入的矩阵
|
||||||
user = request.user
|
user = request.user
|
||||||
|
level = Userprofile.objects.get(user_id=user.id).organization.level.level
|
||||||
user_count = Group_user.objects.filter(user_id=user.id).count()
|
user_count = Group_user.objects.filter(user_id=user.id).count()
|
||||||
group_user_list = []
|
group_user_list = []
|
||||||
for g_u in Group_user.objects.filter(user_id=user.id).order_by('-created'):
|
for g_u in Group_user.objects.filter(user_id=user.id).order_by('-created'):
|
||||||
|
@ -238,7 +242,35 @@ def group_management_user(request):
|
||||||
o3['user_count'] = Group_user.objects.filter(group_id=r_g_u.id).count()
|
o3['user_count'] = Group_user.objects.filter(group_id=r_g_u.id).count()
|
||||||
o3['status'] = r_g_u.status
|
o3['status'] = r_g_u.status
|
||||||
res_g_u.append(o3)
|
res_g_u.append(o3)
|
||||||
return render(request, 'management/group-management-user.html', {'group': group, 'res_g_u': res_g_u,'user_count':user_count})
|
return render(request, 'management/group-management-user.html', {'group': group, 'res_g_u': res_g_u,'user_count':user_count,'level':level})
|
||||||
|
@login_required
|
||||||
|
def group_management_superuser(request):
|
||||||
|
|
||||||
|
user = request.user
|
||||||
|
level = Userprofile.objects.get(user_id=user.id).organization.level.level
|
||||||
|
count = Group.objects.all().count()
|
||||||
|
# 创建的矩阵
|
||||||
|
group = Group.objects.all().order_by('-created')
|
||||||
|
paginator = Paginator(group, 6)
|
||||||
|
page = int(request.GET.get('page', 1))
|
||||||
|
try:
|
||||||
|
group = paginator.page(page)
|
||||||
|
except PageNotAnInteger:
|
||||||
|
group = paginator.page(1)
|
||||||
|
except EmptyPage:
|
||||||
|
group = paginator.page(paginator.num_pages)
|
||||||
|
res_g_i = []
|
||||||
|
for r_g_i in group:
|
||||||
|
o1 = dict()
|
||||||
|
o1['id'] = str(r_g_i.id)
|
||||||
|
o1['image'] = r_g_i.image.url
|
||||||
|
o1['name'] = r_g_i.name
|
||||||
|
o1['type'] = r_g_i.type
|
||||||
|
o1['admin_count'] = Group_admin.objects.filter(group_id=r_g_i.id).count()
|
||||||
|
o1['user_count'] = Group_user.objects.filter(group_id=r_g_i.id).count()
|
||||||
|
o1['status'] = r_g_i.status
|
||||||
|
res_g_i.append(o1)
|
||||||
|
return render(request, 'management/group-management-superuser.html', {'group': group, 'res_g_i': res_g_i,'count':count,'level':level})
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@ -979,7 +1011,8 @@ def newmedia_management_edit_weixin(request):
|
||||||
for w in weixin:
|
for w in weixin:
|
||||||
o = dict()
|
o = dict()
|
||||||
o['id'] = str(w.id)
|
o['id'] = str(w.id)
|
||||||
o['image'] = w.image
|
if w.image:
|
||||||
|
o['image'] = w.image
|
||||||
o['code'] = w.code
|
o['code'] = w.code
|
||||||
o['weixinid'] = w.weixinid
|
o['weixinid'] = w.weixinid
|
||||||
o['organization'] = w.organization.name
|
o['organization'] = w.organization.name
|
||||||
|
|
Loading…
Reference in New Issue