Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
k54kdk
Django Transportation Management System
提交
7794a0f8
D
Django Transportation Management System
项目概览
k54kdk
/
Django Transportation Management System
9 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Django Transportation Management System
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7794a0f8
编写于
5月 17, 2022
作者:
P
Pzqqt
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
wuliu: Implement adding user
上级
2588f66e
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
126 addition
and
3 deletion
+126
-3
wuliu/forms.py
wuliu/forms.py
+22
-0
wuliu/templates/wuliu/settings/user/add_user.html
wuliu/templates/wuliu/settings/user/add_user.html
+64
-0
wuliu/templates/wuliu/settings/user/manage_users.html
wuliu/templates/wuliu/settings/user/manage_users.html
+1
-3
wuliu/urls.py
wuliu/urls.py
+1
-0
wuliu/views.py
wuliu/views.py
+38
-0
未找到文件。
wuliu/forms.py
浏览文件 @
7794a0f8
...
...
@@ -1270,6 +1270,28 @@ class ManageUsers(_FormBase):
"data-bootstrap-switch"
:
""
,
}
class
UserForm
(
_ModelFormBase
):
password_again
=
forms
.
CharField
(
label
=
"再次输入密码"
,
widget
=
forms
.
PasswordInput
)
def
__init__
(
self
,
*
args
,
**
kwargs
):
super
().
__init__
(
*
args
,
**
kwargs
)
self
.
fields
[
"password"
].
widget
.
input_type
=
"password"
self
.
fields
[
"enabled"
].
widget
.
attrs
|=
{
"data-on-text"
:
"启用"
,
"data-off-text"
:
"禁用"
,
"checked"
:
""
,
"data-bootstrap-switch"
:
""
,
}
self
.
fields
[
"administrator"
].
widget
.
attrs
|=
{
"data-on-text"
:
"属于"
,
"data-off-text"
:
"不属于"
,
"data-bootstrap-switch"
:
""
,
}
class
Meta
:
model
=
User
fields
=
[
"name"
,
"password"
,
"enabled"
,
"administrator"
,
"department"
]
class
ManageUserPermission
(
_FormBase
):
user
=
forms
.
ModelChoiceField
(
User
.
objects
.
all
(),
required
=
False
,
label
=
"用户"
)
permission
=
forms
.
ModelMultipleChoiceField
(
Permission
.
objects
.
all
(),
label
=
"权限"
,
required
=
False
)
...
...
wuliu/templates/wuliu/settings/user/add_user.html
0 → 100644
浏览文件 @
7794a0f8
{% extends "wuliu/_layout.html" %}
{% load static %}
{% load wuliu_extras %}
{% block title %}添加用户{% endblock %}
{% block header_title %}添加用户{% endblock %}
{% block head_append_js %}
<script
src=
"{% static 'AdminLTE-3.0.5/plugins/bootstrap-switch/js/bootstrap-switch.min.js' %}"
></script>
{% endblock %}
{% block content %}
<form
action=
"{% url 'wuliu:add_user' %}"
id=
"form-add_user"
class=
"form col-12"
method=
"post"
>
{% csrf_token %}
<fieldset>
<div
class=
"row align-items-end"
>
{% show_form_input_field form.name "用户名" "col-12 col-md-7" %}
{% show_form_input_field form.password "" "col-12 col-md-7 mb-1" %}
{% show_form_input_field form.password_again "" "col-12 col-md-7 mb-1" %}
<div
class=
"col-12 col-md-5 align-self-end text-md"
>
<span
id=
"password_again_note"
></span>
</div>
<div
class=
"col-12 d-flex flex-column flex-md-row"
>
<div
class=
"mt-1"
>
{{ form.enabled }}
<span
class=
"mx-1"
>
该用户,
</span>
</div>
<div
class=
"mt-1"
>
{{ form.administrator }}
<span
class=
"ml-1"
>
管理员。
</span>
</div>
</div>
{% show_form_input_field form.department "" "col-12 col-md-7" %}
</div>
</fieldset>
<button
class=
"btn btn-primary mt-2"
type=
"submit"
>
保存
</button>
</form>
<script>
$
(
document
).
ready
(
function
()
{
$
(
"
input[data-bootstrap-switch]
"
).
each
(
function
()
{
$
(
this
).
bootstrapSwitch
();
});
let
password_flag
=
false
;
let
jq_password
=
'
#form-add_user [name="password"]
'
;
let
jq_password_again
=
'
#form-add_user [name="password_again"]
'
;
$
(
jq_password
+
'
,
'
+
jq_password_again
).
change
(
function
()
{
let
new_password
=
$
(
jq_password
).
val
().
trim
();
let
new_password_again
=
$
(
jq_password_again
).
val
().
trim
();
if
(
new_password
&&
new_password_again
)
{
if
(
new_password
===
new_password_again
)
{
$
(
"
#password_again_note
"
).
html
(
'
<i class="ri-checkbox-circle-fill"></i>
'
).
attr
(
"
class
"
,
"
text-success
"
);
password_flag
=
true
;
}
else
{
$
(
"
#password_again_note
"
).
html
(
'
<i class="ri-close-circle-fill"></i> 两次输入的密码不一致!
'
).
attr
(
"
class
"
,
"
text-danger
"
);
password_flag
=
false
;
}
}
else
{
$
(
"
#password_again_note
"
).
html
(
""
);
password_flag
=
false
;
}
});
$
(
"
#form-add_user
"
).
submit
(
function
(
e
)
{
if
(
!
password_flag
)
e
.
preventDefault
();
})
});
</script>
{% endblock %}
\ No newline at end of file
wuliu/templates/wuliu/settings/user/manage_users.html
浏览文件 @
7794a0f8
...
...
@@ -14,9 +14,7 @@
<div
class=
"row align-items-end"
>
{% show_form_input_field form.user "选择用户" "col-12 col-md-5 mb-1" %}
<div
class=
"col-12 col-md-2"
>
{% comment "TODO: 实现添加用户的功能" %}
<a
class=
"btn btn-primary mr-2"
href=
"#"
style=
"margin-bottom: 0.375rem;"
>
添加用户
</a>
{% endcomment %}
<a
class=
"btn btn-primary mr-2"
href=
"{% url 'wuliu:add_user' %}"
style=
"margin-bottom: 0.375rem;"
>
添加用户
</a>
</div>
<div
class=
"col-12 d-flex flex-column flex-md-row"
>
<div
class=
"mt-1"
>
...
...
wuliu/urls.py
浏览文件 @
7794a0f8
...
...
@@ -18,6 +18,7 @@ urlpatterns = [
# 系统设置
path
(
"settings/"
,
include
([
path
(
"manage_users"
,
views
.
manage_users
,
name
=
"manage_users"
),
path
(
"add_user"
,
views
.
add_user
,
name
=
"add_user"
),
path
(
"manage_user_permission"
,
views
.
manage_user_permission
,
name
=
"manage_user_permission"
),
path
(
"batch_edit_user_permission"
,
views
.
batch_edit_user_permission
,
name
=
"batch_edit_user_permission"
),
])),
...
...
wuliu/views.py
浏览文件 @
7794a0f8
...
...
@@ -390,6 +390,44 @@ def manage_users(request):
messages
.
success
(
request
,
"用户 %s 编辑成功!"
%
user
.
name
)
return
redirect
(
"wuliu:manage_users"
)
@
check_administrator
def
add_user
(
request
):
if
request
.
method
==
"GET"
:
return
render
(
request
,
"wuliu/settings/user/add_user.html"
,
{
"form"
:
forms
.
UserForm
()},
)
if
request
.
method
==
"POST"
:
form
=
forms
.
UserForm
(
request
.
POST
)
custom_error_messages
=
[]
def
_failed
():
messages
.
error
(
request
,
mark_safe
(
"<br>"
.
join
([
"提交失败!"
,
*
[
"%s: %s"
%
(
k
,
""
.
join
(
v
))
for
k
,
v
in
form
.
errors
.
items
()],
*
custom_error_messages
,
])),
)
return
redirect
(
"wuliu:add_user"
)
if
not
form
.
is_valid
():
return
_failed
()
form_cleaned_data
=
form
.
cleaned_data
# 不需要检查用户名是否已被占用, form.is_valid时就已经检查了
form
.
instance
.
password
=
make_password
(
form_cleaned_data
[
"password"
])
try
:
with
transaction
.
atomic
():
new_user
=
form
.
save
()
except
Exception
as
e
:
got_request_exception
.
send
(
None
,
request
=
request
)
custom_error_messages
.
append
(
str
(
e
))
return
_failed
()
messages
.
success
(
request
,
"用户 %s 新增成功!请为该用户分配权限。"
%
new_user
.
name
)
return
redirect
(
"wuliu:manage_users"
)
@
check_administrator
def
manage_user_permission
(
request
):
if
request
.
method
==
"GET"
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录