diff --git a/profile/urls.py b/profile/urls.py
index 4751c87bba..10cf44535f 100644
--- a/profile/urls.py
+++ b/profile/urls.py
@@ -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_profile', name="user_profile"),
url(r'^logout/$', 'logout_relay', name="logout_relay"),
)
diff --git a/profile/views.py b/profile/views.py
index 03c934789a..cc87b307d0 100644
--- a/profile/views.py
+++ b/profile/views.py
@@ -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,63 +35,71 @@ 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':
- modified = False
-
if request.method == 'POST':
modified = True
- 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:
+ modified = False
+ 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,
- 'modified':modified,
- },
- context_instance=RequestContext(request))
+ 'form': form,
+ 'modified': modified,
+ }, 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,
- 'err_msg':err_msg,
+ 'nickname': user_nickname,
+ 'intro': user_intro,
+ 'new_user': new_user,
+ 'err_msg': err_msg,
},
context_instance=RequestContext(request))
diff --git a/settings.py b/settings.py
index bdaeabb36d..4915d391ed 100644
--- a/settings.py
+++ b/settings.py
@@ -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, 60, 48, 16)
AVATAR_MAX_AVATARS_PER_USER = 1
AVATAR_CACHE_TIMEOUT = 0
diff --git a/templates/org_info.html b/templates/org_info.html
index dc0916cb13..a4b338edfa 100644
--- a/templates/org_info.html
+++ b/templates/org_info.html
@@ -10,7 +10,7 @@
{% if org_users %}
{% for member in org_users %}
- - {% avatar member.user_name 16 %}{{ member.short_username }}
+ - {% avatar member.user_name 16 %}{{ member.email|email2nickname }}
{% endfor %}
{% else %}
diff --git a/views.py b/views.py
index e905c7da8e..59374a8da1 100644
--- a/views.py
+++ b/views.py
@@ -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: