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:
@@ -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 {
|
||||
|
@@ -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 %}
|
||||
|
@@ -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 %}
|
||||
|
@@ -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 %}
|
@@ -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
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user