#修改
This commit is contained in:
parent
e964957abc
commit
008abe7eba
|
@ -2,6 +2,7 @@ import uuid
|
|||
from django.contrib.auth.models import User
|
||||
from django.db import models
|
||||
|
||||
|
||||
# 权限等级
|
||||
|
||||
|
||||
|
@ -22,6 +23,8 @@ class Group_type(models.Model):
|
|||
|
||||
def __str__(self):
|
||||
return self.type
|
||||
|
||||
|
||||
# 矩阵
|
||||
|
||||
|
||||
|
@ -58,6 +61,7 @@ class Group(models.Model):
|
|||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
# 矩阵管理员
|
||||
|
||||
|
||||
|
@ -72,6 +76,8 @@ class Group_admin(models.Model):
|
|||
|
||||
def __str__(self):
|
||||
return self.group.name
|
||||
|
||||
|
||||
# 矩阵成员
|
||||
|
||||
|
||||
|
@ -87,6 +93,7 @@ class Group_user(models.Model):
|
|||
def __str__(self):
|
||||
return self.user.username
|
||||
|
||||
|
||||
# 单位类型
|
||||
|
||||
|
||||
|
@ -186,6 +193,15 @@ def create_user_profile(sender, instance, created, **kwargs):
|
|||
|
||||
|
||||
class NewMedia(models.Model):
|
||||
"""
|
||||
status:
|
||||
'0': '已删除',
|
||||
'1': '添加申请市级审核中',
|
||||
'2': '添加申请省级审核中',
|
||||
'3': '正常',
|
||||
'4': '注销申请市级审核中',
|
||||
'5': '注销申请省级审核中',
|
||||
"""
|
||||
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
|
||||
code = models.CharField('微信公众号', max_length=256, null=True, blank=True)
|
||||
alias = models.CharField('别名', max_length=256, null=True, blank=True)
|
||||
|
@ -203,6 +219,7 @@ class NewMedia(models.Model):
|
|||
identificationcode = 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)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
ordering = ["-created"]
|
||||
|
@ -549,6 +566,8 @@ class Douyin_data(models.Model):
|
|||
|
||||
def __str__(self):
|
||||
return self.mewnedia.code
|
||||
|
||||
|
||||
# 其他新媒体
|
||||
|
||||
|
||||
|
@ -559,6 +578,7 @@ class Qita(NewMedia):
|
|||
def __str__(self):
|
||||
return self.qitaid
|
||||
|
||||
|
||||
# 其他新媒体监测
|
||||
|
||||
|
||||
|
@ -576,6 +596,8 @@ class Qita_jc(models.Model):
|
|||
|
||||
def __str__(self):
|
||||
return self.mewnedia.name
|
||||
|
||||
|
||||
# 5级地名库
|
||||
|
||||
|
||||
|
@ -620,6 +642,7 @@ class News(models.Model):
|
|||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
# 手机验证码验证表
|
||||
class CheckCode(models.Model):
|
||||
phone_code = models.CharField('手机验证码', max_length=256, null=True, blank=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('', views.user_login, name='dashboard-login'),
|
||||
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('refresh_captcha/', views.refresh_captcha, name='refresh-captcha'),
|
||||
|
|
|
@ -2,6 +2,8 @@ import csv
|
|||
import json
|
||||
import http.client
|
||||
import random
|
||||
|
||||
from django.contrib.auth.hashers import make_password
|
||||
from django.utils import timezone
|
||||
import time
|
||||
from urllib import parse
|
||||
|
@ -95,25 +97,30 @@ def user_login_for_phone(request):
|
|||
p_code = request.POST.get('check_code')
|
||||
phone = request.POST.get('phone')
|
||||
print(phone, p_code)
|
||||
results = CheckCode.objects.filter(phone=18119305139).count()
|
||||
results = CheckCode.objects.filter(phone=phone).count()
|
||||
print(str(results) + "11111111111111111")
|
||||
# try:
|
||||
res = User.objects.filter(username=phone).count()
|
||||
if res > 0:
|
||||
messages.error(request, '您的账号已经存在,请您使用密码登录!!!')
|
||||
return HttpResponseRedirect('/')
|
||||
if results > 0:
|
||||
check_code = CheckCode.objects.get(phone_code=p_code, phone=phone)
|
||||
if User.objects.filter(username=phone).count() > 0:
|
||||
user = User.objects.get(username=phone)
|
||||
login(request, user, backend='django.contrib.auth.backends.ModelBackend')
|
||||
# check_code.delete()
|
||||
return HttpResponseRedirect('/index/')
|
||||
|
||||
return HttpResponseRedirect('/user/improve/personal/information/%s/' % (user.id))
|
||||
else:
|
||||
user = User(username=phone)
|
||||
user = User(username=phone, last_login=timezone.now())
|
||||
|
||||
user.save()
|
||||
userprofile = Userprofile(user_id=user.id, image='default.png')
|
||||
userprofile.save()
|
||||
# userprofile = Userprofile(user_id=user.id, image='default.png')
|
||||
# userprofile.save()
|
||||
u = authenticate(username=phone)
|
||||
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:
|
||||
# check_code.delete()
|
||||
# return '验证码超时已被删除'
|
||||
|
@ -126,6 +133,46 @@ def user_login_for_phone(request):
|
|||
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):
|
||||
sms_host = "sms.yunpian.com"
|
||||
voice_host = "voice.yunpian.com"
|
||||
|
@ -149,7 +196,6 @@ def author_code(request):
|
|||
# tpl_value = {'#dateStart#': '10月1日', '#dateEnd#': '10日', '#type#': '微信公众号', '#name#': code}
|
||||
tpl_value = {'#code#': code}
|
||||
|
||||
|
||||
params = parse.urlencode({
|
||||
'apikey': apikey,
|
||||
'tpl_id': tpl_id,
|
||||
|
@ -192,6 +238,7 @@ def register(request):
|
|||
flag = False
|
||||
user_organization = None
|
||||
sex = None
|
||||
user_organization = None
|
||||
hash_key = CaptchaStore.generate_key()
|
||||
image_url = captcha_image_url(hash_key)
|
||||
organization = Organization.objects.filter(status='1')
|
||||
|
@ -200,7 +247,11 @@ def register(request):
|
|||
messages.error(request, '请选择单位')
|
||||
else:
|
||||
o = request.POST.get('organization')
|
||||
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'):
|
||||
messages.error(request, '请输入姓名')
|
||||
else:
|
||||
|
@ -223,7 +274,7 @@ def register(request):
|
|||
else:
|
||||
confirm_password = request.POST.get('confirm_password')
|
||||
if not request.FILES.get('image'):
|
||||
messages.error(request, '请选择头像')
|
||||
image='/profile/user_default.jpg'
|
||||
else:
|
||||
image = request.FILES.get('image')
|
||||
print(str(image) + "1111111111111111111111111111111111111111111")
|
||||
|
@ -347,6 +398,7 @@ def get_organization(request):
|
|||
def wechat_verify(request):
|
||||
return HttpResponse("11833201729252855821")
|
||||
|
||||
|
||||
def import_user(request):
|
||||
with open('F:/总.csv') as csvfile:
|
||||
reader = csv.reader(csvfile)
|
||||
|
|
|
@ -53,7 +53,11 @@
|
|||
<div class="controls">
|
||||
<select class="form-control" name="user">
|
||||
{% 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 %}
|
||||
</select>
|
||||
</div>
|
||||
|
|
|
@ -49,6 +49,28 @@
|
|||
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"><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 %}
|
||||
0{% endif %}个矩阵</h6>
|
||||
</ul>
|
||||
|
|
|
@ -41,15 +41,39 @@
|
|||
<header class="panel_header">
|
||||
{# <h2 class="title pull-left">矩阵列表</h2>#}
|
||||
<ul class="nav nav-pills">
|
||||
|
||||
<li role="presentation" class="active" 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"><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 %}
|
||||
0{% endif %}个矩阵</h6>
|
||||
</ul>
|
||||
|
||||
</header>
|
||||
<div class="content-body">
|
||||
<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>
|
||||
<li role="presentation" class="active" style="margin-top: 20px"><a
|
||||
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 %}
|
||||
0{% endif %}个矩阵</h6>
|
||||
</ul>
|
||||
|
|
|
@ -41,19 +41,25 @@
|
|||
<div class="row">
|
||||
<div class="col-md-8 col-sm-9 col-xs-10">
|
||||
<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">
|
||||
<label class="form-label" for="name">矩阵名称</label>
|
||||
<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 class="form-group">
|
||||
<label class="form-label" for="user">管理员</label>
|
||||
<label class="form-label" for="user">成员</label>
|
||||
<div class="controls">
|
||||
<select class="form-control" name="user">
|
||||
{% 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 %}
|
||||
</select>
|
||||
</div>
|
||||
|
|
|
@ -23,6 +23,23 @@
|
|||
<section class="box ">
|
||||
<header class="panel_header">
|
||||
<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>
|
||||
</header>
|
||||
<div class="content-body">
|
||||
|
|
|
@ -23,11 +23,29 @@
|
|||
<section class="box ">
|
||||
<header class="panel_header">
|
||||
<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>
|
||||
</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>
|
||||
|
|
|
@ -23,6 +23,23 @@
|
|||
<section class="box ">
|
||||
<header class="panel_header">
|
||||
<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>
|
||||
</header>
|
||||
<div class="content-body">
|
||||
|
|
|
@ -23,6 +23,24 @@
|
|||
<section class="box ">
|
||||
<header class="panel_header">
|
||||
<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>
|
||||
</header>
|
||||
<div class="content-body">
|
||||
|
|
|
@ -23,6 +23,23 @@
|
|||
<section class="box ">
|
||||
<header class="panel_header">
|
||||
<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>
|
||||
</header>
|
||||
<div class="content-body">
|
||||
|
|
|
@ -42,6 +42,27 @@
|
|||
<section class="box ">
|
||||
<header class="panel_header">
|
||||
<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>
|
||||
{# <div class="actions panel_actions pull-right">#}
|
||||
{# <i class="box_toggle fa fa-chevron-down"></i>#}
|
||||
|
|
|
@ -42,6 +42,22 @@
|
|||
<section class="box ">
|
||||
<header class="panel_header">
|
||||
<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>
|
||||
{# <div class="actions panel_actions pull-right">#}
|
||||
{# <i class="box_toggle fa fa-chevron-down"></i>#}
|
||||
|
|
|
@ -23,6 +23,23 @@
|
|||
<section class="box ">
|
||||
<header class="panel_header">
|
||||
<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>
|
||||
</header>
|
||||
<div class="content-body">
|
||||
|
@ -45,7 +62,8 @@
|
|||
{% for u in userallinfo %}
|
||||
<tr>
|
||||
<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 }}"
|
||||
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.phone }}</td>
|
||||
|
|
|
@ -11,6 +11,7 @@ urlpatterns = [
|
|||
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/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/update/<str:pk>/', views.group_update, name='group-management-update'),
|
||||
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):
|
||||
|
||||
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()
|
||||
# 创建的矩阵
|
||||
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['status'] = r_g_i.status
|
||||
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
|
||||
def group_management_admin(request):
|
||||
# 管理的矩阵
|
||||
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()
|
||||
group_admin_list = []
|
||||
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['status'] = r_g_a.status
|
||||
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
|
||||
def group_management_user(request):
|
||||
# 加入的矩阵
|
||||
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()
|
||||
group_user_list = []
|
||||
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['status'] = r_g_u.status
|
||||
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
|
||||
|
@ -979,6 +1011,7 @@ def newmedia_management_edit_weixin(request):
|
|||
for w in weixin:
|
||||
o = dict()
|
||||
o['id'] = str(w.id)
|
||||
if w.image:
|
||||
o['image'] = w.image
|
||||
o['code'] = w.code
|
||||
o['weixinid'] = w.weixinid
|
||||
|
|
Loading…
Reference in New Issue