1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 23:20:51 +00:00

Modify profile

This commit is contained in:
xiez
2012-06-21 20:53:13 +08:00
parent d8c5604687
commit d477e543e7
13 changed files with 90 additions and 67 deletions

View File

@@ -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]

View File

@@ -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 %}

View File

@@ -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:

View File

@@ -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'昵称只能包含中英文字符、数字及下划线')

View File

@@ -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)

View File

@@ -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>

View File

@@ -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 %}

View File

@@ -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">

View File

@@ -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"),
)

View File

@@ -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', '')
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()
if new_nickname != profile.nickname:
profile.nickname = new_nickname
profile.save()
if new_intro != profile.intro:
profile.intro = new_intro
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))
def user_profile(request):
user = request.GET.get('user', '')
'form': form,
}, context_instance=RequestContext(request))
@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))

View File

@@ -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

View File

@@ -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 %}

View File

@@ -554,7 +554,7 @@ def myhome(request):
else:
groups_join.append(group)
#get nickname
# get nickname
if not Profile.objects.filter(user=request.user.username):
nickname = ''
else: