diff --git a/api/views.py b/api/views.py
index 5ad41b3afa..ec762a963f 100644
--- a/api/views.py
+++ b/api/views.py
@@ -25,7 +25,7 @@ from pysearpc import SearpcError
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_repos, \
get_repo, get_commits, get_branches, \
seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, \
- get_group_repoids, check_group_staff
+ check_group_staff
from seahub.utils import list_to_string, \
get_httpserver_root, gen_token, \
diff --git a/avatar/views.py b/avatar/views.py
index db61c0b92a..c58e3b5cf6 100644
--- a/avatar/views.py
+++ b/avatar/views.py
@@ -13,7 +13,8 @@ from avatar.settings import AVATAR_MAX_AVATARS_PER_USER, AVATAR_DEFAULT_SIZE
from avatar.signals import avatar_updated
from avatar.util import get_primary_avatar, get_default_avatar_url, \
invalidate_cache
-from seahub.utils import render_error, render_permission_error
+from seahub.utils import render_error, render_permission_error, \
+ check_and_get_org_by_group
from auth.decorators import login_required
from seaserv import ccnet_threaded_rpc, check_group_staff
@@ -103,6 +104,9 @@ def group_add(request):
if not group:
return HttpResponseRedirect(reverse('group_list', args=[]))
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_group(group_id_int)
+
form = GroupAvatarForm(request.POST or None, request.FILES or None)
if request.method == 'POST' and 'avatar' in request.FILES:
@@ -116,6 +120,8 @@ def group_add(request):
return render_to_response('avatar/set_avatar.html', {
'group' : group,
'form' : form,
+ 'org': org,
+ 'base_template': base_template,
}, context_instance=RequestContext(request))
@login_required
diff --git a/base/templatetags/seahub_tags.py b/base/templatetags/seahub_tags.py
index 968baf2a57..6d8c00f33e 100644
--- a/base/templatetags/seahub_tags.py
+++ b/base/templatetags/seahub_tags.py
@@ -118,6 +118,9 @@ def translate_remain_time(value):
@register.filter(name='email2nickname')
def email2nickname(value):
+ if not value:
+ return ''
+
nickname = cache.get(NICKNAME_CACHE_PREFIX+value)
if not nickname:
profile = get_first_object_or_none(Profile.objects.filter(user=value))
diff --git a/group/templates/group/group_info.html b/group/templates/group/group_info.html
index 4d43f31b20..4fb11267fc 100644
--- a/group/templates/group/group_info.html
+++ b/group/templates/group/group_info.html
@@ -1,4 +1,5 @@
{% extends base_template %}
+
{% load seahub_tags avatar_tags %}
{% load url from future %}
@@ -69,11 +70,11 @@
{% else %}
创建团体
diff --git a/organizations/templates/organizations/personal.html b/organizations/templates/organizations/personal.html
index 3f5d7a51c7..ae7309e62d 100644
--- a/organizations/templates/organizations/personal.html
+++ b/organizations/templates/organizations/personal.html
@@ -57,7 +57,7 @@
{% endif %}
-
+
|
diff --git a/organizations/views.py b/organizations/views.py
index bd81f77134..168b96179d 100644
--- a/organizations/views.py
+++ b/organizations/views.py
@@ -28,7 +28,7 @@ from seahub.contacts import Contact
from seahub.forms import RepoCreateForm
import seahub.settings as seahub_settings
from seahub.utils import render_error, render_permission_error, gen_token, \
- validate_group_name, string2list, set_cur_ctx, calculate_repo_last_modify,\
+ validate_group_name, string2list, calculate_repo_last_modify,\
MAX_INT
from seahub.views import myhome
@@ -68,9 +68,9 @@ def org_info(request, url_prefix):
if not org:
return HttpResponseRedirect(reverse(myhome))
- ctx_dict = {'base_template': 'org_base.html',
- 'org_dict': org._dict}
- set_cur_ctx(request, ctx_dict)
+ # ctx_dict = {'base_template': 'org_base.html',
+ # 'org_dict': org._dict}
+ # set_cur_ctx(request, ctx_dict)
org_members = ccnet_threaded_rpc.get_org_emailusers(url_prefix,
0, MAX_INT)
@@ -103,6 +103,7 @@ def org_personal(request, url_prefix):
return render_to_response('organizations/personal.html', {
'owned_repos': owned_repos,
'url': reverse('org_repo_create', args=[url_prefix]),
+ 'org': org,
}, context_instance=RequestContext(request))
@login_required
@@ -123,15 +124,17 @@ def org_inner_pub_repo_create(request, url_prefix):
repo_desc = form.cleaned_data['repo_desc']
passwd = form.cleaned_data['passwd']
user = request.user.username
- org_id = request.user.org['org_id']
+ org = get_user_current_org(request.user.username, url_prefix)
+ if not org:
+ return HttpResponse(json.dumps(u'创建目录失败:未加入该团体'),
+ content_type=content_type)
try:
# create a org repo
- repo_id = seafserv_threaded_rpc.create_org_repo(repo_name,
- repo_desc,
- user, passwd,org_id)
+ repo_id = create_org_repo(repo_name, repo_desc, user, passwd,
+ org.org_id)
# set org inner pub
- seafserv_threaded_rpc.set_org_inner_pub_repo(org_id, repo_id)
+ seafserv_threaded_rpc.set_org_inner_pub_repo(org.org_id, repo_id)
except:
repo_id = None
if not repo_id:
@@ -155,7 +158,11 @@ def org_groups(request, url_prefix):
if request.method == 'POST':
group_name = request.POST.get('group_name')
if not validate_group_name(group_name):
- return render_error(request, u'小组名称只能包含中英文字符,数字及下划线')
+ return render_error(request, u'小组名称只能包含中英文字符,数字及下划线',
+ extra_ctx={
+ 'org': org,
+ 'base_template': 'org_base.html',
+ })
try:
group_id = ccnet_threaded_rpc.create_group(group_name.encode('utf-8'),
@@ -163,7 +170,10 @@ def org_groups(request, url_prefix):
ccnet_threaded_rpc.add_org_group(org.org_id, group_id)
except SearpcError, e:
error_msg = e.msg
- return render_error(request, error_msg)
+ return render_error(request, error_msg, extra_ctx={
+ 'org': org,
+ 'base_template': 'org_base.html',
+ })
groups = get_org_groups(org.org_id, 0, MAX_INT)
return render_to_response('organizations/org_groups.html', {
@@ -205,9 +215,9 @@ def org_useradmin(request, url_prefix):
if not org:
return HttpResponseRedirect(reverse(myhome))
- ctx_dict = {'base_template': 'org_admin_base.html',
- 'org_dict': request.user.org}
- set_cur_ctx(request, ctx_dict)
+ # ctx_dict = {'base_template': 'org_admin_base.html',
+ # 'org_dict': request.user.org}
+ # set_cur_ctx(request, ctx_dict)
if request.method == 'POST':
emails = request.POST.get('added-member-name')
@@ -329,9 +339,13 @@ def org_repo_create(request, url_prefix):
passwd_again = form.cleaned_data['passwd_again']
user = request.user.username
- org_id = request.user.org['org_id']
+ org = get_user_current_org(request.user.username, url_prefix)
+ if not org:
+ return HttpResponse(json.dumps(u'创建目录失败:未加入该团体'),
+ content_type=content_type)
- repo_id = create_org_repo(repo_name, repo_desc, user, passwd, org_id)
+ repo_id = create_org_repo(repo_name, repo_desc, user, passwd,
+ org.org_id)
if not repo_id:
result['error'] = u"创建目录失败"
else:
diff --git a/profile/templates/profile/profile_base.html b/profile/templates/profile/profile_base.html
index 16fcf438ac..a6bdda9cf7 100644
--- a/profile/templates/profile/profile_base.html
+++ b/profile/templates/profile/profile_base.html
@@ -1,4 +1,4 @@
-{% extends base_template %}
+{% extends "myhome_base.html" %}
{% block title %}帐号设置{% endblock %}
diff --git a/settings.py b/settings.py
index fcb8552149..e2159acefa 100644
--- a/settings.py
+++ b/settings.py
@@ -94,7 +94,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
'django.contrib.messages.context_processors.messages',
'seahub.base.context_processors.base',
- 'seahub.organizations.context_processors.org',
+# 'seahub.organizations.context_processors.org',
)
diff --git a/templates/myhome.html b/templates/myhome.html
index 9bebc5d265..d911601186 100644
--- a/templates/myhome.html
+++ b/templates/myhome.html
@@ -1,5 +1,6 @@
{% extends "myhome_base.html" %}
{% load seahub_tags avatar_tags group_avatar_tags %}
+{% load url from future %}
{% block nav_myhome_class %}class="cur"{% endblock %}
{% block left_panel %}
@@ -21,7 +22,7 @@
小组
{% for grp in grpmsg_list %}
- {{ grp.group_name }}
+ {{ grp.group_name }}
{% endfor %}
有新留言
@@ -30,7 +31,7 @@
{{ grpmsg_reply_list|length }}条留言有新回复
{% endif %}
{% if orgmsg_list %}
-
{{ orgmsg_list|length }}条团体消息
+
{{ orgmsg_list|length }}条团体消息
{% endif %}
{% endif %}
diff --git a/templates/myhome_base.html b/templates/myhome_base.html
index 1624b42218..b9ae3574a6 100644
--- a/templates/myhome_base.html
+++ b/templates/myhome_base.html
@@ -10,11 +10,6 @@
公共页面
{% endif %}
- {% if request.user.org %}
-
- 企业
-
- {% endif %}
小组
diff --git a/templates/org_info.html b/templates/org_info.html
index a4b338edfa..da3e15a2f2 100644
--- a/templates/org_info.html
+++ b/templates/org_info.html
@@ -44,11 +44,11 @@
{{ repo.props.name }} |
{{ repo.props.desc }} |
- {{ repo.share_from }} |
+ {{ repo.owner }} |
{% if is_staff or repo.share_from_me %}
-
+
{% endif %}
|
diff --git a/templates/repo_update_file.html b/templates/repo_update_file.html
index baaf167903..5ef09b0ca5 100644
--- a/templates/repo_update_file.html
+++ b/templates/repo_update_file.html
@@ -1,4 +1,4 @@
-{% extends "myhome_base.html" %}
+{% extends base_template %}
{% load seahub_tags %}
{% block main_panel %}
diff --git a/thirdpart/seaserv/__init__.py b/thirdpart/seaserv/__init__.py
index 11659d0218..cb27d811bd 100644
--- a/thirdpart/seaserv/__init__.py
+++ b/thirdpart/seaserv/__init__.py
@@ -6,10 +6,11 @@ from service import send_command
from service import get_emailusers
from service import get_org_groups, get_personal_groups, get_group_repoids, \
check_group_staff, remove_group_user, get_group, get_org_id_by_group, \
- get_group_members, get_shared_groups_by_repo, is_group_user
+ get_group_members, get_shared_groups_by_repo, is_group_user, \
+ get_org_group_repos, get_group_repos
from service import get_repos, get_repo, get_commits, get_branches, \
get_org_repos, is_repo_owner, create_org_repo, is_inner_pub_repo, \
- list_org_inner_pub_repos
+ list_org_inner_pub_repos, get_org_id_by_repo_id
from service import get_binding_peerids, is_valid_filename, check_permission
from service import create_org, get_orgs_by_user, get_org_by_url_prefix, \
get_user_current_org, add_org_user, remove_org_user, get_org_by_id, \
diff --git a/thirdpart/seaserv/service.py b/thirdpart/seaserv/service.py
index 4e151c4038..a100688c4a 100644
--- a/thirdpart/seaserv/service.py
+++ b/thirdpart/seaserv/service.py
@@ -331,8 +331,8 @@ def get_binding_peerids(email):
peerid_list.append(peer_id)
return peerid_list
-def get_group_repoids(group_id=None):
- """Get repo ids of a given group id or username"""
+def get_group_repoids(group_id):
+ """Get repo ids of a given group id."""
try:
repo_ids = seafserv_threaded_rpc.get_group_repoids(group_id)
except SearpcError:
@@ -348,6 +348,82 @@ def get_group_repoids(group_id=None):
repoid_list.append(repo_id)
return repoid_list
+def get_group_repos(group_id, user):
+ """Get repos of a given group id."""
+ try:
+ repo_ids = seafserv_threaded_rpc.get_group_repoids(group_id)
+ except SearpcError:
+ return []
+
+ if not repo_ids:
+ return []
+
+ repoid_list = []
+ for repo_id in repo_ids.split("\n"):
+ if repo_id == '':
+ continue
+ repoid_list.append(repo_id)
+
+ repos = []
+ for repo_id in repoid_list:
+ if not repo_id:
+ continue
+ repo = get_repo(repo_id)
+ if not repo:
+ continue
+
+ repo.owner = seafserv_threaded_rpc.get_group_repo_share_from(repo_id)
+ repo.share_from_me = True if user == repo.owner else False
+
+ try:
+ repo.latest_modify = get_commits(repo.id, 0, 1)[0].ctime
+ except:
+ repo.latest_modify = None
+
+ repos.append(repo)
+ repos.sort(lambda x, y: cmp(y.latest_modify, x.latest_modify))
+
+ return repos
+
+def get_org_group_repos(org_id, group_id, user):
+ """Get org repos of a given group id."""
+ try:
+ repo_ids = seafserv_threaded_rpc.get_org_group_repoids(org_id, group_id)
+ except SearpcError:
+ return []
+
+ if not repo_ids:
+ return []
+
+ repoid_list = []
+ for repo_id in repo_ids.split("\n"):
+ if repo_id == '':
+ continue
+ repoid_list.append(repo_id)
+
+ repos = []
+ for repo_id in repoid_list:
+ if not repo_id:
+ continue
+ repo = get_repo(repo_id)
+ if not repo:
+ continue
+
+ repo.owner = seafserv_threaded_rpc.get_org_group_repo_owner(org_id,
+ group_id,
+ repo_id)
+ repo.sharecd_from_me = True if user == repo.owner else False
+
+ try:
+ repo.latest_modify = get_commits(repo.id, 0, 1)[0].ctime
+ except:
+ repo.latest_modify = None
+
+ repos.append(repo)
+ repos.sort(lambda x, y: cmp(y.latest_modify, x.latest_modify))
+
+ return repos
+
def is_valid_filename(file_or_dir):
"""
Check whether file name or directory name is valid.
@@ -381,3 +457,14 @@ def check_permission(repo_id, user):
except SearpcError:
ret = -1
return True if ret == 0 else False
+
+def get_org_id_by_repo(repo_id):
+ """
+ Check whether repo is org repo.
+ """
+ try:
+ org_id = seafserv_threaded_rpc.get_org_id_by_repo_id(repo_id)
+ except SearpcError:
+ org_id = -1
+ return org_id
+
diff --git a/utils.py b/utils.py
index 0e9e3b276c..30b6841128 100644
--- a/utils.py
+++ b/utils.py
@@ -14,7 +14,9 @@ from django.core.files.uploadhandler import FileUploadHandler, StopFutureHandler
from django.core.cache import cache
from seaserv import seafserv_rpc, ccnet_threaded_rpc, seafserv_threaded_rpc, \
- get_repo, get_commits, get_group_repoids, CCNET_SERVER_ADDR, CCNET_SERVER_PORT
+ get_repo, get_commits, get_group_repoids, CCNET_SERVER_ADDR, \
+ CCNET_SERVER_PORT, get_org_id_by_repo_id, get_org_by_id, \
+ get_org_id_by_group
try:
from settings import CROCODOC_API_TOKEN
except ImportError:
@@ -47,23 +49,37 @@ def gen_fileext_type_map():
return d
FILEEXT_TYPE_MAP = gen_fileext_type_map()
-def render_permission_error(request, msg=None):
+def render_permission_error(request, msg=None, extra_ctx=None):
"""
Return permisson error page.
"""
- return render_to_response('permission_error.html', {
- 'error_msg': msg or u'权限错误',
- }, context_instance=RequestContext(request))
+ ctx = {}
+ ctx['error_msg'] = msg or u'权限错误'
+ ctx['base_template'] = 'myhome_base.html'
-def render_error(request, msg=None):
+ if extra_ctx:
+ for k in extra_ctx:
+ ctx[k] = extra_ctx[k]
+
+ return render_to_response('permission_error.html', ctx,
+ context_instance=RequestContext(request))
+
+def render_error(request, msg=None, extra_ctx=None):
"""
Return normal error page.
"""
- return render_to_response('error.html', {
- 'error_msg': msg or u'内部错误',
- }, context_instance=RequestContext(request))
+ ctx = {}
+ ctx['error_msg'] = msg or u'内部错误'
+ ctx['base_template'] = 'myhome_base.html'
+
+ if extra_ctx:
+ for k in extra_ctx:
+ ctx[k] = extra_ctx[k]
+
+ return render_to_response('error.html', ctx,
+ context_instance=RequestContext(request))
def list_to_string(l):
"""
@@ -232,7 +248,7 @@ def get_accessible_repos(request, repo):
groups_repos = []
groups = ccnet_threaded_rpc.get_groups(email)
for group in groups:
- group_repo_ids = get_group_repoids(group_id=group.id)
+ group_repo_ids = get_group_repoids(group.id)
for repo_id in group_repo_ids:
if not repo_id:
continue
@@ -318,13 +334,44 @@ def string2list(string):
s.add(e)
return [ x for x in s ]
-def get_cur_ctx(request):
- ctx_dict = request.session.get('current_context', {
- 'base_template': 'myhome_base.html',
- 'org_dict': None})
- return ctx_dict
+# def get_cur_ctx(request):
+# ctx_dict = request.session.get('current_context', {
+# 'base_template': 'myhome_base.html',
+# 'org_dict': None})
+# return ctx_dict
-def set_cur_ctx(request, ctx_dict):
- request.session['current_context'] = ctx_dict
- request.user.org = ctx_dict.get('org_dict', None)
+# def set_cur_ctx(request, ctx_dict):
+# request.session['current_context'] = ctx_dict
+# request.user.org = ctx_dict.get('org_dict', None)
+def check_and_get_org_by_repo(repo_id):
+ """
+ Check whether repo is org repo, get org info if it is, and set
+ base template.
+ """
+ org_id = get_org_id_by_repo_id(repo_id)
+ if org_id > 0:
+ # this repo is org repo, get org info
+ org = get_org_by_id(org_id)
+ base_template = 'org_base.html'
+ else:
+ org = None
+ base_template = 'myhome_base.html'
+
+ return org, base_template
+
+def check_and_get_org_by_group(group_id):
+ """
+ Check whether repo is org repo, get org info if it is, and set
+ base template.
+ """
+ org_id = get_org_id_by_group(group_id)
+ if org_id > 0:
+ # this repo is org repo, get org info
+ org = get_org_by_id(org_id)
+ base_template = 'org_base.html'
+ else:
+ org = None
+ base_template = 'myhome_base.html'
+
+ return org, base_template
diff --git a/views.py b/views.py
index d95e9113e7..d39c837c25 100644
--- a/views.py
+++ b/views.py
@@ -31,7 +31,7 @@ from share.models import FileShare
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_repos, get_emailusers, \
get_repo, get_commits, get_branches, is_valid_filename, remove_group_user,\
seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, is_inner_pub_repo, \
- get_group_repoids, check_group_staff, get_personal_groups, is_repo_owner, \
+ check_group_staff, get_personal_groups, is_repo_owner, \
get_group, get_shared_groups_by_repo, is_group_user, check_permission
from pysearpc import SearpcError
@@ -51,8 +51,8 @@ from utils import render_permission_error, render_error, list_to_string, \
calculate_repo_last_modify, valid_previewed_file, \
check_filename_with_rename, get_accessible_repos, EMPTY_SHA1, \
get_file_revision_id_size, get_ccnet_server_addr_port, \
- gen_file_get_url, string2list, set_cur_ctx, MAX_INT, \
- gen_file_upload_url
+ gen_file_get_url, string2list, MAX_INT, \
+ gen_file_upload_url, check_and_get_org_by_repo
from seahub.profile.models import Profile
try:
from settings import CROCODOC_API_TOKEN
@@ -133,6 +133,9 @@ def render_repo(request, repo_id, error=''):
if not repo:
return render_error(request, u'该同步目录不存在')
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
# query whether set password if repo is encrypted
password_set = False
if repo.props.encrypted:
@@ -221,11 +224,17 @@ def render_repo(request, repo_id, error=''):
"accessible_repos": accessible_repos,
"applet_root": get_ccnetapplet_root(),
"groups": groups,
+ "org": org,
+ "base_template": base_template,
}, context_instance=RequestContext(request))
@login_required
def repo_upload_file(request, repo_id):
repo = get_repo(repo_id)
+
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
if request.method == 'GET':
parent_dir = request.GET.get('p', '/')
zipped = gen_path_link (parent_dir, repo.name)
@@ -254,11 +263,17 @@ def repo_upload_file(request, repo_id):
"zipped": zipped,
"max_upload_file_size": settings.MAX_UPLOAD_FILE_SIZE,
"no_quota": no_quota,
+ "base_template": base_template,
+ "org": org,
}, context_instance=RequestContext(request))
@login_required
def repo_update_file(request, repo_id):
repo = get_repo(repo_id)
+
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
if request.method == 'GET':
target_file = request.GET.get('p')
if not target_file:
@@ -289,6 +304,8 @@ def repo_update_file(request, repo_id):
"zipped": zipped,
"max_upload_file_size": settings.MAX_UPLOAD_FILE_SIZE,
"no_quota": no_quota,
+ "org": org,
+ "base_template": base_template,
}, context_instance=RequestContext(request))
def upload_error_msg (code):
@@ -308,6 +325,9 @@ def upload_error_msg (code):
return err_msg
def upload_file_error(request, repo_id):
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
if request.method == 'GET':
repo = get_repo(repo_id)
parent_dir = request.GET.get('p')
@@ -325,10 +345,15 @@ def upload_file_error(request, repo_id):
'repo': repo,
'zipped': zipped,
'filename': filename,
- 'err_msg': err_msg
+ 'err_msg': err_msg,
+ 'org': org,
+ 'base_template': base_template,
}, context_instance=RequestContext(request))
def update_file_error(request, repo_id):
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
if request.method == 'GET':
repo = get_repo(repo_id)
target_file = request.GET.get('p')
@@ -344,7 +369,9 @@ def update_file_error(request, repo_id):
return render_to_response('upload_file_error.html', {
'repo': repo,
'zipped': zipped,
- 'err_msg': err_msg
+ 'err_msg': err_msg,
+ 'org': org,
+ 'base_template': base_template,
}, context_instance=RequestContext(request))
def get_subdir(request):
@@ -418,13 +445,16 @@ def repo(request, repo_id):
@login_required
def repo_history(request, repo_id):
"""
- View repo history
+ View repo history.
"""
if not access_to_repo(request, repo_id, ''):
return render_permission_error(request, u'无法浏览该同步目录修改历史')
-
+
repo = get_repo(repo_id)
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
password_set = False
if repo.props.encrypted:
try:
@@ -467,6 +497,8 @@ def repo_history(request, repo_id):
'per_page': per_page,
'page_next': page_next,
'is_owner': is_owner,
+ 'org': org,
+ 'base_template': base_template,
}, context_instance=RequestContext(request))
@login_required
@@ -582,6 +614,12 @@ def modify_token(request, repo_id):
@login_required
def remove_repo(request, repo_id):
+ # FIXME: no org in request.user, check whether repo is org repo, and then
+ # check permission
+
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
if not validate_owner(request, repo_id) and not request.user.is_staff \
and not request.user.org['is_staff']:
err_msg = u'删除同步目录失败, 只有管理员或目录创建者有权删除目录。'
@@ -620,7 +658,10 @@ def myhome(request):
notes = UserNotification.objects.filter(to_user=request.user.username)
for n in notes:
if n.msg_type == 'group_msg':
- grpmsg_list.append(get_group(n.detail))
+ grp = get_group(n.detail)
+ if not grp:
+ continue
+ grpmsg_list.append(grp)
elif n.msg_type == 'grpmsg_reply':
grpmsg_reply_list.append(n.detail)
elif n.msg_type == 'org_msg':
@@ -636,9 +677,9 @@ def myhome(request):
profile = Profile.objects.filter(user=request.user.username)[0]
nickname = profile.nickname
- ctx_dict = {'base_template': 'myhome_base.html',
- 'org_dict': None}
- set_cur_ctx(request, ctx_dict)
+ # ctx_dict = {'base_template': 'myhome_base.html',
+ # 'org_dict': None}
+ # set_cur_ctx(request, ctx_dict)
return render_to_response('myhome.html', {
"myname": email,
@@ -749,6 +790,9 @@ def repo_view_file(request, repo_id):
"""
Preview file on web, including files in current worktree and history.
"""
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
if request.method == 'POST':
# handle post request to leave comment on file
path = request.GET.get('p', '/')
@@ -907,6 +951,8 @@ def repo_view_file(request, repo_id):
'next_page': current_page+1,
'per_page': per_page,
'page_next': page_next,
+ 'org': org,
+ 'base_template': base_template,
}, context_instance=RequestContext(request))
def repo_file_get(raw_path):
@@ -1019,10 +1065,12 @@ def update_file_after_edit(request, repo_id):
@login_required
def repo_file_edit(request, repo_id):
-
if request.method == 'POST':
return update_file_after_edit(request, repo_id)
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
path = request.GET.get('p', '/')
if path[-1] == '/':
path = path[:-1]
@@ -1066,7 +1114,9 @@ def repo_file_edit(request, repo_id):
'err':err,
'file_content':file_content,
'encoding': encoding,
- 'newline_mode': newline_mode
+ 'newline_mode': newline_mode,
+ 'org': org,
+ 'base_template': base_template,
}, context_instance=RequestContext(request))
@@ -1742,6 +1792,9 @@ def render_file_revisions (request, repo_id):
zipped = gen_path_link(path, repo.name)
+ # change navigator when user in diffent context
+ org, base_template = check_and_get_org_by_repo(repo_id)
+
return render_to_response('file_revisions.html', {
'repo': repo,
'path': path,
@@ -1749,6 +1802,8 @@ def render_file_revisions (request, repo_id):
'zipped': zipped,
'commits': commits,
'is_owner': is_owner,
+ 'org': org,
+ 'base_template': base_template,
}, context_instance=RequestContext(request))
@login_required