mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-01 23:20:51 +00:00
Modify profile
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
# encoding: utf-8
|
||||
|
||||
import datetime as dt
|
||||
from datetime import datetime
|
||||
from django import template
|
||||
|
||||
import re
|
||||
from datetime import datetime
|
||||
|
||||
from django import template
|
||||
|
||||
from seahub.settings import FILEEXT_ICON_MAP
|
||||
from seahub.po import TRANSLATION_MAP
|
||||
from seahub.profile.models import Profile
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@@ -73,3 +73,11 @@ def translate_remain_time(value):
|
||||
return u'%d 分钟' % (value/60)
|
||||
else:
|
||||
return u'%d 秒' % (value)
|
||||
|
||||
@register.filter(name='email2nickname')
|
||||
def email2nickname(value):
|
||||
try:
|
||||
profile = Profile.objects.get(user=value)
|
||||
return profile.nickname
|
||||
except Profile.DoesNotExist:
|
||||
return value.split('@')[0]
|
||||
|
@@ -9,11 +9,7 @@
|
||||
<h3>管理员</h3>
|
||||
<ul>
|
||||
{% for member in managers %}
|
||||
{% if member.user_name != request.user.username %}
|
||||
<li class="group-member">{% avatar member.user_name 16 %}<span class="group-member-name"><a href="{{ SITE_ROOT }}profile/user/?user={{ member.user_name }}">{{ member.short_username }}</a></span></li>
|
||||
{% else %}
|
||||
<li class="group-member">{% avatar member.user_name 16 %}<span class="group-member-name">{{ member.short_username }}</span></li>
|
||||
{% endif %}
|
||||
<li class="group-member">{% avatar member.user_name 16 %}<span class="group-member-name"><a href="{{ SITE_ROOT }}profile/{{ member.user_name }}/">{{ member.user_name|email2nickname }}</a></span></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
@@ -21,11 +17,9 @@
|
||||
{% if common_members %}
|
||||
<ul>
|
||||
{% for member in common_members %}
|
||||
{% if member.user_name != request.user.username %}
|
||||
<li class="group-member">{% avatar member.user_name 16 %}<span class="group-member-name"><a href="{{ SITE_ROOT }}profile/user/?user={{ member.user_name }}">{{ member.short_username }}</a></span></li>
|
||||
{% else %}
|
||||
<li class="group-member">{% avatar member.user_name 16 %}<span class="group-member-name">{{ member.short_username }}</span></li>
|
||||
{% endif %}
|
||||
<li class="group-member">{% avatar member.user_name 16 %}
|
||||
<span class="group-member-name"><a href="{{ SITE_ROOT }}profile/{{ member.user_name }}/">{{ member.user_name|email2nickname }}</a></span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
|
@@ -125,7 +125,7 @@ def group_info(request, group_id):
|
||||
managers = []
|
||||
common_members = []
|
||||
for member in members:
|
||||
member.short_username = member.user_name.split('@')[0]
|
||||
# member.short_username = member.user_name.split('@')[0]
|
||||
if member.is_staff == 1:
|
||||
managers.append(member)
|
||||
else:
|
||||
|
@@ -1,8 +1,15 @@
|
||||
# encoding: utf-8
|
||||
from django import forms
|
||||
|
||||
class SetUserProfileForm(forms.Form):
|
||||
from seahub.utils import validate_group_name
|
||||
|
||||
status = forms.CharField(max_length=140, required=False)
|
||||
interests = forms.CharField(max_length=256, required=False)
|
||||
class ProfileForm(forms.Form):
|
||||
nickname = forms.CharField(max_length=64)
|
||||
intro = forms.CharField(max_length=256)
|
||||
|
||||
#signature = forms.CharField()
|
||||
def clean_nickname(self):
|
||||
nickname = self.cleaned_data['nickname']
|
||||
if validate_group_name(nickname):
|
||||
return nickname
|
||||
else:
|
||||
raise forms.ValidationError(u'昵称只能包含中英文字符、数字及下划线')
|
||||
|
@@ -1,8 +1,7 @@
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
class Profile(models.Model):
|
||||
user = models.EmailField(unique=True)
|
||||
nickname = models.CharField(max_length=256, blank=True)
|
||||
nickname = models.CharField(max_length=64, blank=True)
|
||||
intro = models.TextField(max_length=256, blank=True)
|
||||
|
||||
|
@@ -3,6 +3,7 @@
|
||||
{% block left_panel %}
|
||||
<h3>操作</h3>
|
||||
<ul class="with-bg">
|
||||
<li><a href="{{ SITE_ROOT }}profile/">修改昵称等基本信息</a></li>
|
||||
<li><a href="{{ SITE_ROOT }}avatar/add/">上传头像</a></li>
|
||||
<li><a href="{{ SITE_ROOT }}accounts/password/change/">修改网站帐号密码</a></li>
|
||||
<li><a href="{{ SITE_ROOT }}profile/list_user/">所有已登录的计算机</a></li>
|
||||
@@ -13,8 +14,10 @@
|
||||
<div id="user-basic-info">
|
||||
<h2>个人基本信息修改</h2>
|
||||
<form action="" method="post">
|
||||
<label>昵称:</label><input type="text" name="nickname" value="{{ nickname }}" class="text-input" /><br/>
|
||||
<label>自我介绍:</label><textarea name="intro">{{ intro }}</textarea><br />
|
||||
<label>昵称:</label><input type="text" name="nickname" value="{{ form.data.nickname }}" class="text-input" /><br/>
|
||||
{{ form.nickname.errors }}
|
||||
<label>自我介绍:</label><textarea name="intro">{{ form.data.intro }}</textarea><br />
|
||||
{{ form.intro.errors }}
|
||||
<input type="submit" value="提交" class="submit" />
|
||||
</form>
|
||||
</div>
|
||||
|
@@ -6,6 +6,7 @@
|
||||
<li><a href="{{ SITE_ROOT }}profile/">修改昵称等基本信息</a></li>
|
||||
<li><a href="{{ SITE_ROOT }}avatar/add/">上传头像</a></li>
|
||||
<li><a href="{{ SITE_ROOT }}accounts/password/change/">修改网站帐号密码</a></li>
|
||||
<li><a href="{{ SITE_ROOT }}profile/list_user/">所有已登录的计算机</a></li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
|
@@ -6,7 +6,9 @@
|
||||
<div class="user-profile narrow-panel ovhd">
|
||||
<div class="pic fleft">
|
||||
{% avatar email 80 %}
|
||||
{% if new_user %}
|
||||
<button id="add">加为联系人</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="txt fright">
|
||||
|
@@ -3,6 +3,6 @@ from django.conf.urls.defaults import *
|
||||
urlpatterns = patterns('profile.views',
|
||||
url(r'^list_user/$', 'list_userids', name="list_userids"),
|
||||
url(r'^$', 'edit_profile', name="edit_profile"),
|
||||
url(r'^user/$', 'user_profile', name="user_profile"),
|
||||
url(r'^(?P<user>[^/]+)/$', 'user_profile', name="user_profile"),
|
||||
url(r'^logout/$', 'logout_relay', name="logout_relay"),
|
||||
)
|
||||
|
@@ -8,8 +8,10 @@ from django.contrib.auth.decorators import login_required
|
||||
from seaserv import ccnet_rpc, get_binding_peerids
|
||||
from pysearpc import SearpcError
|
||||
|
||||
from utils import go_error
|
||||
from forms import ProfileForm
|
||||
from models import Profile
|
||||
from utils import go_error
|
||||
from seahub.contacts.models import Contact
|
||||
|
||||
@login_required
|
||||
def list_userids(request):
|
||||
@@ -33,61 +35,68 @@ def logout_relay(request):
|
||||
|
||||
return HttpResponseRedirect(reverse('list_userids'))
|
||||
|
||||
@login_required
|
||||
def edit_profile(request):
|
||||
profile = Profile.objects.filter(user=request.user.username)
|
||||
if not profile:
|
||||
Profile.objects.create(user=request.user.username, nickname='', intro='')
|
||||
|
||||
profile = Profile.objects.filter(user=request.user.username)[0]
|
||||
if request.method == 'GET':
|
||||
pass
|
||||
|
||||
if request.method == 'POST':
|
||||
new_nickname = request.POST.get('nickname', '')
|
||||
new_intro = request.POST.get('intro', '')
|
||||
|
||||
if new_nickname != profile.nickname:
|
||||
profile.nickname = new_nickname
|
||||
profile.save()
|
||||
|
||||
if new_intro != profile.intro:
|
||||
profile.intro = new_intro
|
||||
form = ProfileForm(request.POST)
|
||||
if form.is_valid():
|
||||
nickname = form.cleaned_data['nickname']
|
||||
intro = form.cleaned_data['intro']
|
||||
try:
|
||||
profile = Profile.objects.get(user=request.user.username)
|
||||
except Profile.DoesNotExist:
|
||||
profile = Profile()
|
||||
|
||||
profile.user = request.user.username
|
||||
profile.nickname = nickname
|
||||
profile.intro = intro
|
||||
profile.save()
|
||||
else:
|
||||
try:
|
||||
profile = Profile.objects.get(user=request.user.username)
|
||||
form = ProfileForm({
|
||||
'nickname': profile.nickname,
|
||||
'intro': profile.intro,
|
||||
})
|
||||
except Profile.DoesNotExist:
|
||||
form = ProfileForm()
|
||||
|
||||
return render_to_response('profile/set_profile.html', {
|
||||
'nickname':profile.nickname,
|
||||
'intro':profile.intro,
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
'form': form,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
def user_profile(request):
|
||||
user = request.GET.get('user', '')
|
||||
|
||||
@login_required
|
||||
def user_profile(request, user):
|
||||
user_nickname = ''
|
||||
user_intro = ''
|
||||
err_msg = ''
|
||||
|
||||
if user:
|
||||
try:
|
||||
user_check = ccnet_rpc.get_emailuser(user)
|
||||
except:
|
||||
user_check = None
|
||||
|
||||
try:
|
||||
user_check = ccnet_rpc.get_emailuser(user)
|
||||
except:
|
||||
user_check = None
|
||||
|
||||
if user_check:
|
||||
profile = Profile.objects.filter(user=user)
|
||||
if profile:
|
||||
profile = profile[0]
|
||||
user_nickname = profile.nickname
|
||||
user_intro = profile.intro
|
||||
else:
|
||||
err_msg = '该用户不存在'
|
||||
if user_check:
|
||||
profile = Profile.objects.filter(user=user)
|
||||
if profile:
|
||||
profile = profile[0]
|
||||
user_nickname = profile.nickname
|
||||
user_intro = profile.intro
|
||||
else:
|
||||
err_msg = '该用户不存在'
|
||||
|
||||
|
||||
if user == request.user.username or \
|
||||
Contact.objects.filter(user_email=request.user.username,
|
||||
contact_email=user).count() > 0:
|
||||
new_user = False
|
||||
else:
|
||||
new_user = True
|
||||
|
||||
return render_to_response('profile/user_profile.html', {
|
||||
'email': user,
|
||||
'nickname':user_nickname,
|
||||
'intro':user_intro,
|
||||
'new_user': new_user,
|
||||
'err_msg':err_msg,
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
|
@@ -194,7 +194,7 @@ else:
|
||||
AVATAR_STORAGE_DIR = 'avatars'
|
||||
AVATAR_GRAVATAR_BACKUP = False
|
||||
AVATAR_DEFAULT_URL = '/avatars/default.jpg'
|
||||
AUTO_GENERATE_AVATAR_SIZES = (80, 16)
|
||||
AUTO_GENERATE_AVATAR_SIZES = (80, 48, 16)
|
||||
AVATAR_MAX_AVATARS_PER_USER = 1
|
||||
AVATAR_CACHE_TIMEOUT = 0
|
||||
|
||||
|
@@ -10,7 +10,7 @@
|
||||
{% if org_users %}
|
||||
<ul>
|
||||
{% for member in org_users %}
|
||||
<li class="org-member">{% avatar member.user_name 16 %}<span class="org-member-name">{{ member.short_username }}</span></li>
|
||||
<li class="org-member">{% avatar member.user_name 16 %}<span class="org-member-name"><a href="{{ SITE_ROOT }}profile/{{ member.email }}/">{{ member.email|email2nickname }}</a></span></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
|
Reference in New Issue
Block a user