1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-18 16:36:15 +00:00

[group list] added 'lib/discuss/wiki' links, improved code

This commit is contained in:
llj
2013-12-13 20:02:29 +08:00
parent 0940671e42
commit 8c806a2a1e
6 changed files with 73 additions and 79 deletions

View File

@@ -1677,6 +1677,14 @@ textarea:-moz-placeholder {/* for FF */
width:5em;
color:#666;
}
.group .fast .a {
font-size:18px;
color:#FEAC74;
margin-right:5px;
}
.group .fast .a:hover {
text-decoration:none;
}
.ru .group .item-name,
.de .group .item-name,
.it .group .item-name {

View File

@@ -15,7 +15,7 @@
{% block extra_script %}
<script type="text/javascript">
{% url 'group_list' as group_add_url %}
{% url 'group_add' as group_add_url %}
{% with post_url=group_add_url %}
{% include "snippets/group_add_js.html" %}
{% endwith %}

View File

@@ -9,9 +9,16 @@
<li class="group ovhd">
<a href="{{ SITE_ROOT }}group/{{ group.props.id }}/" class="no-deco fleft" title="{{ group.props.group_name }}">{% grp_avatar group.props.id 56 %}</a>
<div class="txt fright">
<h4><a href="{{ SITE_ROOT }}group/{{ group.props.id }}/">{{ group.props.group_name }}</a></h4>
<h4><a href="{% url 'group_info' group.props.id %}">{{ group.props.group_name }}</a></h4>
<p><span class="item-name">{% trans "Creator: " %}</span>{{ group.props.creator_name }}</p>
<p><span class="item-name">{% trans "Time: "%}</span>{{ group.props.timestamp|tsstr_sec }}</p>
<div class="fast">
<a href="{% url 'group_info' group.props.id %}" title="{% trans "Libraries" %}" class="a"><span class="icon-folder-close"></span></a>
<a href="{% url 'group_discuss' group.props.id %}" title="{% trans "Discussion" %}" class="a"><span class="icon-comment"></span></a>
{% if group.wiki_enabled %}
<a href="{% url 'group_wiki' group.props.id %}" title="{% trans "Wiki" %}" class="a"><span class="icon-book"></span></a>
{% endif %}
</div>
</div>
</li>
{% endfor %}

View File

@@ -1,29 +0,0 @@
{% extends "myhome_base.html" %}
{% load url from future %}
{% block nav_projgroup_class %}class="cur"{% endblock %}
{% block left_panel %}
<!-- 操作 -->
{% include "group/groups_left_panel.html" %}
{% endblock %}
{% block right_panel %}
<!-- 项目组 -->
<h3>项目组</h3>
{% include "group/groups_right_panel.html" %}
{% endblock %}
{% block extra_script %}
<script type="text/javascript">
$("#group-add").click(function() {
$("#group-add-form").modal({appendTo: "#main"});
return false;
});
{% url 'proj_group_list' as group_add_url %}
{% with post_url=group_add_url %}
{% include "snippets/group_add_js.html" %}
{% endwith %}
</script>
{% endblock %}

View File

@@ -7,7 +7,7 @@ from views import group_info, group_members, group_member_operations, group_add_
group_wiki_page_new, group_wiki_page_edit, group_wiki_pages, \
group_wiki_page_delete, group_remove, group_dismiss, group_quit, \
group_make_public, group_revoke_public, group_transfer, group_toggle_modules, \
group_add_discussion, group_rename
group_add_discussion, group_rename, group_add
urlpatterns = patterns('',
url(r'^(?P<group_id>\d+)/$', group_info, name='group_info'),
@@ -40,6 +40,7 @@ urlpatterns = patterns('',
url(r'^joinrequest/(?P<group_id>[\d]+)/$', group_joinrequest, name='group_joinrequest'),
url(r'^(?P<group_id>\d+)/modules/toggle/$', group_toggle_modules, name='group_toggle_modules'),
url(r'^(?P<group_id>\d+)/discussion/add/$', group_add_discussion, name='group_add_discussion'),
url(r'^add/$', group_add, name='group_add'),
)
import seahub.settings as settings

View File

@@ -125,57 +125,64 @@ def group_check(func):
return _decorated
@login_required
def group_add(request):
if not request.is_ajax() or request.method != 'POST':
raise Http404
username = request.user.username
result = {}
content_type = 'application/json; charset=utf-8'
# check plan
num_of_groups = getattr(request.user, 'num_of_groups', -1)
if num_of_groups > 0:
current_groups = len(get_personal_groups_by_user(username))
if current_groups > num_of_groups:
result['error'] = _(u'You can only create %d groups.<a href="http://seafile.com/">Upgrade account.</a>') % num_of_groups
return HttpResponse(json.dumps(result), status=500,
content_type=content_type)
form = GroupAddForm(request.POST)
if form.is_valid():
group_name = form.cleaned_data['group_name']
# Check whether group name is duplicated.
if request.cloud_mode:
checked_groups = get_personal_groups_by_user(username)
else:
checked_groups = get_personal_groups(-1, -1)
for g in checked_groups:
if g.group_name == group_name:
result['error'] = _(u'There is already a group with that name.')
return HttpResponse(json.dumps(result), status=400,
content_type=content_type)
# Group name is valid, create that group.
try:
ccnet_threaded_rpc.create_group(group_name.encode('utf-8'),
username)
return HttpResponse(json.dumps({'success': True}),
content_type=content_type)
except SearpcError, e:
result['error'] = _(e.msg)
return HttpResponse(json.dumps(result), status=500,
content_type=content_type)
else:
return HttpResponseBadRequest(json.dumps(form.errors),
content_type=content_type)
@login_required
def group_list(request):
username = request.user.username
if request.method == 'POST':
"""
Add a new group.
"""
result = {}
content_type = 'application/json; charset=utf-8'
# check plan
num_of_groups = getattr(request.user, 'num_of_groups', -1)
if num_of_groups > 0:
current_groups = len(get_personal_groups_by_user(username))
if current_groups > num_of_groups:
result['error'] = _(u'You can only create %d groups.<a href="http://seafile.com/">Upgrade account.</a>') % num_of_groups
return HttpResponse(json.dumps(result), status=500,
content_type=content_type)
form = GroupAddForm(request.POST)
if form.is_valid():
group_name = form.cleaned_data['group_name']
# Check whether group name is duplicated.
if request.cloud_mode:
checked_groups = get_personal_groups_by_user(username)
else:
checked_groups = get_personal_groups(-1, -1)
for g in checked_groups:
if g.group_name == group_name:
result['error'] = _(u'There is already a group with that name.')
return HttpResponse(json.dumps(result), status=400,
content_type=content_type)
# Group name is valid, create that group.
try:
ccnet_threaded_rpc.create_group(group_name.encode('utf-8'),
username)
return HttpResponse(json.dumps({'success': True}),
content_type=content_type)
except SearpcError, e:
result['error'] = _(e.msg)
return HttpResponse(json.dumps(result), status=500,
content_type=content_type)
else:
return HttpResponseBadRequest(json.dumps(form.errors),
content_type=content_type)
### GET ###
joined_groups = get_personal_groups_by_user(username)
for group in joined_groups:
mods_enabled = get_enabled_mods_by_group(group.id)
if 'group wiki' in mods_enabled:
group.wiki_enabled = True
else:
group.wiki_enabled = False
return render_to_response('group/groups.html', {
'joined_groups': joined_groups,