Commit 9aab450f by liuyingying

忽然充不上电吓死了

parent c8d96667
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>hunter.detail</title> <title>HT-个人详情页</title>
{% load static %} {% load static %}
<link rel="icon" href="{% static 'hunter/images/logo.ico' %}" type="text/icon"> <link rel="icon" href="{% static 'hunter/images/logo.ico' %}" type="text/icon">
<link rel="stylesheet" type="text/css" href="{% static 'hunter/detail.css' %}"> <link rel="stylesheet" type="text/css" href="{% static 'hunter/detail.css' %}">
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<span>{{ user.mailAddress }} </span> <span>{{ user.mailAddress }} </span>
{% endif %} {% endif %}
{% if user.personal_website %} {% if user.personal_website %}
<a href="javascript:goUrl({{ user.personal_website }})" target="_blank">{{ user.personal_website }}</a> <a id="mysite" href="javascript:goUrl()" >{{ user.personal_website }}</a>
{% endif %} {% endif %}
</div> </div>
</div> </div>
...@@ -80,8 +80,14 @@ ...@@ -80,8 +80,14 @@
</div> </div>
</div> </div>
<script> <script>
function goUrl(url){ function goUrl(){
window.open(url); let url=$("#mysite").text();
if(url.indexOf('http')!==-1){
window.open(url);
}else{
window.open('http://'+url);
}
} }
</script> </script>
</body> </body>
......
...@@ -300,7 +300,9 @@ ...@@ -300,7 +300,9 @@
if (!storage["userID"]&&!storage["username"]){ if (!storage["userID"]&&!storage["username"]){
}else{ }else{
login_success(storage['username'],storage['userID']) $('#top_bar').empty();
$('#top_bar').append("<ul><li onclick='logout()'>退出</li><li title='点击进入个人中心'><a href='/user/"+storage["userID"]+"/' target='_blank'>"+storage["username"]+"</a></li></ul>");
hide_log();
} }
}; };
...@@ -376,6 +378,7 @@ ...@@ -376,6 +378,7 @@
$('#top_bar').empty(); $('#top_bar').empty();
$('#top_bar').append("<ul><li onclick='logout()'>退出</li><li title='点击进入个人中心'><a href='/user/"+userid+"/' target='_blank'>"+name+"</a></li></ul>"); $('#top_bar').append("<ul><li onclick='logout()'>退出</li><li title='点击进入个人中心'><a href='/user/"+userid+"/' target='_blank'>"+name+"</a></li></ul>");
hide_log(); hide_log();
window.open("/user/"+userid);
} }
function login_fail(message){ function login_fail(message){
$('#error_log').empty(); $('#error_log').empty();
......
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>修改个人信息</title> <title>修改个人信息</title>
{% load static %}
<script src="{% static 'hunter/jquery-1.9.1.min.js' %}"></script>
</head> </head>
<style type="text/css"> <style type="text/css">
*{ *{
...@@ -37,8 +39,8 @@ ...@@ -37,8 +39,8 @@
height:30px; height:30px;
border:solid 1px #f1f1f1; border:solid 1px #f1f1f1;
cursor: pointer; cursor: pointer;
float:left; float: right;
margin:5px; margin: 5px 10px;
} }
#hunter{ #hunter{
width:40%; width:40%;
...@@ -48,13 +50,13 @@ ...@@ -48,13 +50,13 @@
} }
#hunter>span{ #hunter>span{
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
font-size:38px; font-size: 20px;
font-weight: bold; font-weight: bold;
height:40px; height: 40px;
display: block; line-height: 40px;
position: absolute; display: block;
left:25px; position: absolute;
bottom:25px; left: 25px;
} }
#bar{ #bar{
width:60%; width:60%;
...@@ -77,9 +79,58 @@ ...@@ -77,9 +79,58 @@
background-color: #306cc5; background-color: #306cc5;
} }
#profile{ #profile{
min-width:800px; width: 800px;
min-height:100%; min-height: 100%;
padding-top:50px; padding-top: 50px;
margin: 0 auto;
}
.item{
height: 50px;
width: 100%;
padding: 10px 10px;
}
.item label{
width: 150px;
text-align: right;
line-height: 40px;
margin-right: 10px;
}
.item input{
height: 40px;
border: solid 1px #f1f1f1;
border-radius: 4px;
width: 200px;
padding-left: 5px;
}
.item .required{
color: red;
font-size: 12px;
margin: 15px 5px 0;
}
.item .hint{
font-size: 12px;
color: #9c9c9c;
margin: 15px 7px 0;
}
.item button{
float: right;
}
#error_log{
color: red;
height: 40px;
font-size: 14px;
margin-left: 150px;
line-height: 40px;
}
#username{
color: grey;
background-color: #f7f7f7;
}
.item *{
float:left;
} }
</style> </style>
...@@ -91,8 +142,7 @@ ...@@ -91,8 +142,7 @@
</div> </div>
<div id="bar"> <div id="bar">
<div class="btn"> <div class="btn">
<button onclick="close_window()" class="close_btn">关闭</button> <button onclick="close_window()" class="close_btn">返回</button>
<button onclick="submit_profile()" class="submit_btn">确认</button>
</div> </div>
</div> </div>
</div> </div>
...@@ -101,21 +151,24 @@ ...@@ -101,21 +151,24 @@
<div class="item"> <div class="item">
<label for="username">用户名:</label> <label for="username">用户名:</label>
<input id="username" disabled type="text" value="{{ user.name }}"> <input id="username" disabled type="text" value="{{ user.name }}">
<span class="hint">不可更改</span> <span class="hint">不可更改(统一为姓名拼音)</span>
</div> </div>
<div class="item"> <div class="item">
<label for="name_hanzi">姓名:</label> <label for="name_hanzi">姓名</label>
<input id="name_hanzi" name="name_hanzi" type="text" value="{{ user.name_hanzi }}"> <input id="name_hanzi" name="name_hanzi" type="text" value="{{ user.name_hanzi }}">
<span class="required">*</span> <span class="required">*</span>
<span class="hint">真实姓名:在首页成员列表显示</span>
</div> </div>
<div class="item"> <div class="item">
<label for="name_eng">Name:</label> <label for="name_eng">英文名字:</label>
<input id="name_eng" name="name_eng" type="text" placeholder="Pin Yin or Tom" value="{{ user.name_eng }}"> <input id="name_eng" name="name_eng" type="text" placeholder="Pin Yin or Tom" value="{{ user.name_eng }}">
<span class="required">*</span> <span class="required">*</span>
<span class="hint">在个人详情页面显示(自定义:Xiao Ming or Tom)</span>
</div> </div>
<div class="item"> <div class="item">
<label for="pwd">新密码:</label> <label for="pwd">新密码:</label>
<input id="pwd" name="pwd" type="text"> <input id="pwd" name="pwd" type="text">
<span class="hint">留空则不更改密码</span>
</div> </div>
<div class="item"> <div class="item">
<label for="confirm_pwd">确认密码:</label> <label for="confirm_pwd">确认密码:</label>
...@@ -124,52 +177,50 @@ ...@@ -124,52 +177,50 @@
<div class="item"> <div class="item">
<label for="mail">邮箱:</label> <label for="mail">邮箱:</label>
<input id="mail" name="mail" type="text" value="{{ user.mailAddress }}"> <input id="mail" name="mail" type="text" value="{{ user.mailAddress }}">
<span class="required"></span> <span class="hint">在首页成员列表➕个人详情页面显示</span>
</div> </div>
<div class="item"> <div class="item">
<label for="personal_web">个人网站:</label> <label for="personal_web">个人网站:</label>
<input id="personal_web" name="personal_web" type="text" value="{{ user.personal_website }}"> <input id="personal_web" name="personal_web" type="text" value="{{ user.personal_website }}">
<span class="required"></span> <span class="hint">可选填,在个人信息页面显示</span>
</div> </div>
<div class="item"> <div class="item">
<span class="error_log"></span> <button onclick="close_window()" class="close_btn">关闭</button>
<button onclick="submit_profile()" class="submit_btn">确认</button>
<span class="error_log" id="error_log"></span>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
window.onload = function(){ window.onload = function(){
let storage = window.localStorage; let storage = window.localStorage;
if(!storage['userID']){ let list = window.location.href.split('/');
let userID = list[list.length-2];
if(!storage['userID']||userID!==storage['userID']){
alert("请先登录"); alert("请先登录");
close_window(); close_window();
window.open('/');
} }
}; };
function close_window(){ function close_window(){
window.open('www.hunter-ht.cn'); window.close();
} }
function submit_profile() { function submit_profile() {
let storage = window.localStorage; let storage = window.localStorage;
let userID = storage.userID; let userID = storage.userID;
let name_hanzi = $("input[name='name_hanzi']").val(); let name_hanzi = $("#name_hanzi").val();
let name_eng = $("input[name='name_eng']").val(); let name_eng = $("#name_eng").val();
let pwd = $("#pwd").val(); let pwd = $("#pwd").val();
let mail = $("#mail").val()||" "; let mail = $("#mail").val()||" ";
let website = $("#personal_web").val()||" "; let website = $("#personal_web").val()||" ";
if(pwd!==$("#confirm_pwd").val()){ if(pwd!==$("#confirm_pwd").val()){
$("#error_log").innerHTML="密码不一致"; $("#error_log").innerHTML="密码不一致";
}else if(name_eng&&name_hanzi) }else if(!name_eng&&!name_hanzi)
{ {
$("#error_log").innerHTML="请填写中英文姓名"; $("#error_log").innerHTML="请填写中英文姓名";
} }
else{ else{
let storage = window.localStorage;
let userID = storage.userID;
let name_hanzi = $("input[name='name_hanzi']").val();
let name_eng = $("input[name='name_eng']").val();
let pwd = $("#pwd").val();
let mail = $("#mail").val();
let website = $("#personal_web").val();
$.ajax({ $.ajax({
url:'/profile_edit/', url:'/profile_submit/',
type:'post', type:'post',
dataType:'json', dataType:'json',
data:{ data:{
...@@ -185,7 +236,8 @@ ...@@ -185,7 +236,8 @@
console.log(response); console.log(response);
if(response['message']){ if(response['message']){
alert('修改成功'); alert('修改成功');
window.location.href='www.hunter-ht.cn'; window.close();
window.open('/');
}else{ }else{
alert("提交失败,请反馈"); alert("提交失败,请反馈");
} }
......
...@@ -25,13 +25,18 @@ ...@@ -25,13 +25,18 @@
<nav> <nav>
<div> <div>
<div id="hunter"> <div id="hunter">
<span><a href="/">HUNTER</a></span> <span><a href="../../">HUNTER</a></span>
</div> </div>
<div id="bar" class=""> <div id="bar" class="">
<div class="smaller_bottom_bar"> <div class="smaller_bottom_bar">
<a href="" class="main_bar" onclick="exit()">退出</a> <a href="" class="main_bar" onclick="exit()">退出登录</a>
<a href="" class="main_bar userID" id="">修改个人信息</a> <a href="../../" class="main_bar" >返回首页</a>
<span id="username" class="main_bar">{{ usr.name }}</span>
<a href="{% url 'hunter:profile_edit' user.userID %}" target="_blank" class="main_bar userID" id="">修改个人信息</a>
<a href="{% url 'hunter:detail' user.userID %}" class="main_bar" target="_blank">查看个人详情页</a>
<a href="{% url 'hunter:detail' user.userID %}" id="username" class="main_bar" target="_blank">{{ usr.name }}</a>
</div> </div>
</div> </div>
</div> </div>
...@@ -254,11 +259,13 @@ ...@@ -254,11 +259,13 @@
isFind=1; isFind=1;
var $h1=' <ul><li class="big_text li_long"><a href="/static/hunter/publications/'+myfile.name+'" target="_blank">'+title+'</a></li><li class="right"><button class="dele_img" onclick="delePub('+response['pubID']+')"></button></li><li class="middle_text right">'+date_month+'</li><li class="right">'+journalname+'</li><li class="right">'+type+'</li><li class="small_text">'+authors+'</li></ul>'; var $h1=' <ul><li class="big_text li_long"><a href="/static/hunter/publications/'+myfile.name+'" target="_blank">'+title+'</a></li><li class="right"><button class="dele_img" onclick="delePub('+response['pubID']+')"></button></li><li class="middle_text right">'+date_month+'</li><li class="right">'+journalname+'</li><li class="right">'+type+'</li><li class="small_text">'+authors+'</li></ul>';
$(this).after($h1); $(this).after($h1);
window.location.reload();
} }
}); });
if(!isFind){ if(!isFind){
var $h2='<blockquote><p>'+year+'</p></blockquote><ul><li class="big_text li_long"><a href="/static/hunter/publications/'+myfile.name+'" target="_blank">'+title+'</a></li> <li class="right"><button class="dele_img" onclick="delePub('+response['pubID']+')"></button></li><li class="middle_text right">'+date_month+'</li><li class="right">'+journalname+'</li><li class="right">'+type+'</li><li class="small_text">'+authors+'</li></ul>'; var $h2='<blockquote><p>'+year+'</p></blockquote><ul><li class="big_text li_long"><a href="/static/hunter/publications/'+myfile.name+'" target="_blank">'+title+'</a></li> <li class="right"><button class="dele_img" onclick="delePub('+response['pubID']+')"></button></li><li class="middle_text right">'+date_month+'</li><li class="right">'+journalname+'</li><li class="right">'+type+'</li><li class="small_text">'+authors+'</li></ul>';
$('#publish .wrap')[0].prepend($h2); $('#publish .wrap')[0].prepend($h2);
window.location.reload();
} }
}else{ }else{
$('#error_log').append(response['error']); $('#error_log').append(response['error']);
......
...@@ -8,7 +8,8 @@ urlpatterns = [ ...@@ -8,7 +8,8 @@ urlpatterns = [
# path('<int:pk>/', views.UserDetail.as_view(), name='user'), # path('<int:pk>/', views.UserDetail.as_view(), name='user'),
# path('<int:pk>/article/', views.ArticleDetail.as_view(), name='article'), # path('<int:pk>/article/', views.ArticleDetail.as_view(), name='article'),
path('user/<int:user_id>/', views.user, name='user'), path('user/<int:user_id>/', views.user, name='user'),
path('user/edit/profile/<int:user_id>/', views.detail, name='detail'), path('user/edit/profile/<int:user_id>/', views.profile_edit, name='profile_edit'),
path('profile_submit/', views.profile_submit, name='profile_submit'),
path('user/detail/<int:user_id>/', views.detail, name='detail'), path('user/detail/<int:user_id>/', views.detail, name='detail'),
path('write/', views.write_art, name='write_art'), path('write/', views.write_art, name='write_art'),
path('uploadImg/', views.uploadImg, name='uploadImg'), path('uploadImg/', views.uploadImg, name='uploadImg'),
......
...@@ -7,6 +7,7 @@ from django.views.decorators.csrf import csrf_exempt ...@@ -7,6 +7,7 @@ from django.views.decorators.csrf import csrf_exempt
import os import os
from django.db.utils import ProgrammingError from django.db.utils import ProgrammingError
import datetime import datetime
from operator import itemgetter, attrgetter
from django.shortcuts import redirect from django.shortcuts import redirect
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
import json import json
...@@ -160,6 +161,8 @@ def user(request, user_id): ...@@ -160,6 +161,8 @@ def user(request, user_id):
my_publication_year_list[year].append(pub) my_publication_year_list[year].append(pub)
else: else:
my_publication_year_list[year] = [pub] my_publication_year_list[year] = [pub]
for item in my_publication_year_list:
my_publication_year_list[item] = sorted(my_publication_year_list[item], key=attrgetter('date'), reverse=True)
my_article_list = Articles.objects.filter(authorID=user_id).order_by('-editDateTime') my_article_list = Articles.objects.filter(authorID=user_id).order_by('-editDateTime')
my_article_year_list = {} my_article_year_list = {}
...@@ -456,8 +459,15 @@ def profile_submit(request): ...@@ -456,8 +459,15 @@ def profile_submit(request):
pwd=request.POST["pwd"] pwd=request.POST["pwd"]
mail=request.POST["mail"] mail=request.POST["mail"]
website=request.POST["website"] website=request.POST["website"]
try: if len(str(pwd).strip()) >0:
User.objects.filter(userID=userID).update(name_hanzi=name_hanzi, name_eng=name_eng, pwd=pwd, mailAddress= mail, personal_website=website) try:
return JsonResponse({'message':1}) User.objects.filter(userID=userID).update(name_hanzi=name_hanzi, name_eng=name_eng, pwd=pwd, mailAddress= mail, personal_website=website)
except ObjectDoesNotExist as e: return JsonResponse({'message':1})
return JsonResponse({"message":0,'error':e}) except ObjectDoesNotExist as e:
return JsonResponse({"message":0,'error':e})
else:
try:
User.objects.filter(userID=userID).update(name_hanzi=name_hanzi, name_eng=name_eng, mailAddress= mail, personal_website=website)
return JsonResponse({'message':1})
except ObjectDoesNotExist as e:
return JsonResponse({"message":0,'error':e})
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment