diff --git a/profile/models.py b/profile/models.py
index b220667fca..e322c24af8 100644
--- a/profile/models.py
+++ b/profile/models.py
@@ -4,5 +4,5 @@ from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
- status = models.CharField(max_length=40, blank=True)
+ ccnet_user_id = models.CharField(max_length=40, blank=True)
diff --git a/profile/templates/profile/profile.html b/profile/templates/profile/profile.html
index 0e705bcc97..1a547ca525 100644
--- a/profile/templates/profile/profile.html
+++ b/profile/templates/profile/profile.html
@@ -3,7 +3,7 @@
{% block left_panel %}
- - 修改资料
+ - 修改 Ccnet 设置
- 修改头像
- 删除不用的头像
- 修改密码
@@ -17,15 +17,10 @@
{% load avatar_tags %}
{% avatar user 90 %}
-基本信息
-当前状态:{{ user.get_profile.status }}
-我的兴趣:{{ user.get_profile.interests }}
-{% if peer %}
Ccnet 当前设置
-Ccnet ID: {{ peer.peer_id }}
-Ccnet Name: {{ peer.name }}
-{% endif %}
+Ccnet ID: {{ profile.ccnet_user_id }}
+
{% if groups %}
加入的组
diff --git a/profile/templates/profile/set_profile.html b/profile/templates/profile/set_profile.html
index aec8765041..7084ae46db 100644
--- a/profile/templates/profile/set_profile.html
+++ b/profile/templates/profile/set_profile.html
@@ -4,17 +4,12 @@
{% block content %}
{% endblock %}
diff --git a/profile/views.py b/profile/views.py
index 1daa5f00e8..9e3dfc3d50 100644
--- a/profile/views.py
+++ b/profile/views.py
@@ -9,39 +9,56 @@ import datetime
from forms import SetUserProfileForm
from models import UserProfile
-
+from seaserv import ccnet_rpc
@login_required
def show_profile(request):
groups = []
+ try:
+ profile = request.user.get_profile()
+ except UserProfile.DoesNotExist:
+ profile = UserProfile(user=request.user)
+ profile.save()
return render_to_response('profile/profile.html',
- { 'groups': groups, },
+ { 'groups': groups,
+ 'profile': profile, },
context_instance=RequestContext(request))
@login_required
def set_profile(request):
+ error_msg = None
+ origin_id = None
if request.method == 'POST':
- form = SetUserProfileForm(request.POST)
- if form.is_valid():
+ ccnet_user_id = request.POST.get('ccnet_user_id', None)
+ origin_id = ccnet_user_id
+ if not ccnet_user_id:
+ error_msg = "You must specify ccnet user id"
+ elif len(ccnet_user_id) != 40:
+ error_msg = "Ccnet User ID must be of length 40"
+ else:
try:
profile = request.user.get_profile()
except UserProfile.DoesNotExist:
profile = UserProfile(user=request.user)
- profile.save() # save the profile first, otherwise
- # status.save() would fail.
-
- profile.save()
- return HttpResponseRedirect(reverse(show_profile))
+ profile.save()
+ try:
+ ccnet_rpc.add_client(ccnet_user_id)
+ except:
+ error_msg = "Ccnet Deamon is not available, try again later"
+ else:
+ profile.ccnet_user_id = ccnet_user_id
+ profile.save()
+ return HttpResponseRedirect(reverse(show_profile))
else:
try:
profile = request.user.get_profile()
except UserProfile.DoesNotExist:
profile = UserProfile(user=request.user)
-
- profile_form = SetUserProfileForm(profile.__dict__)
+ profile.save()
+ origin_id = profile.ccnet_user_id
return render_to_response('profile/set_profile.html',
- { 'profile_form': profile_form, },
+ { 'error_msg': error_msg,
+ 'origin_id': origin_id },
context_instance=RequestContext(request))
-
diff --git a/templates/myfiles.html b/templates/myfiles.html
new file mode 100644
index 0000000000..06d70f68c3
--- /dev/null
+++ b/templates/myfiles.html
@@ -0,0 +1,19 @@
+{% extends "myhome_base.html" %}
+
+{% block right_panel %}
+
+
+ Repo ID |
+ Commit ID |
+ Timestamp |
+
+
+ {% for item in uploaded_items %}
+
+ {{ item.props.repo_id }} |
+ {{ item.props.commit_id }} |
+ {{ item.props.timestamp }} |
+
+ {% endfor %}
+
+{% endblock %}
diff --git a/templates/myhome.html b/templates/myhome.html
index b1cdd71c3f..2e64c23a5d 100644
--- a/templates/myhome.html
+++ b/templates/myhome.html
@@ -1 +1,5 @@
{% extends "myhome_base.html" %}
+
+{% block right_panel %}
+Ccnet ID: {{ ccnet_user_id }}
+{% endblock %}
diff --git a/templates/myhome_base.html b/templates/myhome_base.html
index 794e1591dc..ba0b55c008 100644
--- a/templates/myhome_base.html
+++ b/templates/myhome_base.html
@@ -5,7 +5,7 @@
Home
- Files
+ Files
Peers
diff --git a/thirdpart/seaserv/__init__.py b/thirdpart/seaserv/__init__.py
index be508115d1..b17e1be749 100644
--- a/thirdpart/seaserv/__init__.py
+++ b/thirdpart/seaserv/__init__.py
@@ -1,9 +1,10 @@
import service
-from service import cclient, ccnet_rpc, seamsg_rpc
+from service import cclient, ccnet_rpc, seamsg_rpc, seafile_rpc
from service import translate_peerid, translate_msgtime, translate_groupid
from service import get_peers_by_role
from service import get_groups, get_group
from service import get_users, get_user
-from service import get_repos, get_repo, get_repo_sinfo, get_commits
+from service import get_repos, get_repo, get_repo_sinfo, get_commits, \
+ get_user_upload_info
diff --git a/thirdpart/seaserv/service.py b/thirdpart/seaserv/service.py
index 88a561b7d7..17dd32a65c 100644
--- a/thirdpart/seaserv/service.py
+++ b/thirdpart/seaserv/service.py
@@ -127,6 +127,8 @@ def get_repo(repo_id):
def get_repo_sinfo(repo_id):
return seafile_rpc.get_repo_sinfo(repo_id)
-
def get_commits(repo_id):
return seafile_rpc.get_commit_list(repo_id, "", 100)
+
+def get_user_upload_info(user_id):
+ return seafile_rpc.get_user_upload_info(user_id, 0, 100)
diff --git a/urls.py b/urls.py
index 0273807367..6de6a52187 100644
--- a/urls.py
+++ b/urls.py
@@ -1,6 +1,6 @@
from django.conf.urls.defaults import *
from django.conf import settings
-from seahub.views import root, home, peers, groups, myhome
+from seahub.views import root, home, peers, groups, myhome, myfiles
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
@@ -24,6 +24,7 @@ urlpatterns = patterns('',
(r'^home/my/$', myhome),
(r'^peers/$', peers),
(r'^groups/$', groups),
+ (r'^files/my/$', myfiles),
(r'^avatar/', include('avatar.urls')),
(r'^profile/', include('seahub.profile.urls')),
diff --git a/views.py b/views.py
index 7673ea9d18..8cad76be92 100644
--- a/views.py
+++ b/views.py
@@ -4,10 +4,14 @@ from django.core.urlresolvers import reverse
from django.template import RequestContext
from django.contrib.auth.decorators import login_required
-from seaserv import cclient, ccnet_rpc, get_groups, get_users
+from seaserv import cclient, ccnet_rpc, get_groups, get_users, \
+ get_user_upload_info
def root(request):
- return HttpResponseRedirect(reverse(home))
+ if request.user.is_authenticated():
+ return HttpResponseRedirect(reverse(myhome))
+ else:
+ return HttpResponseRedirect(reverse(home))
def home(request):
@@ -15,9 +19,25 @@ def home(request):
}, context_instance=RequestContext(request))
+def get_user_cid(user):
+ try:
+ profile = user.get_profile()
+ return profile.ccnet_user_id
+ except UserProfile.DoesNotExist:
+ return None
+
+
@login_required
def myhome(request):
+ ccnet_user_id = ""
+ try:
+ profile = request.user.get_profile()
+ ccnet_user_id = profile.ccnet_user_id
+ except UserProfile.DoesNotExist:
+ pass
+
return render_to_response('myhome.html', {
+ "ccnet_user_id": ccnet_user_id,
}, context_instance=RequestContext(request))
@@ -50,3 +70,14 @@ def groups(request):
'groups': groups,
}, context_instance=RequestContext(request))
+
+@login_required
+def myfiles(request):
+ cid = get_user_cid(request.user)
+ if not cid:
+ uploaded_items = []
+ else:
+ uploaded_items = get_user_upload_info(cid)
+ return render_to_response('myfiles.html', {
+ 'uploaded_items': uploaded_items,
+ }, context_instance=RequestContext(request))