1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-19 18:29:23 +00:00

[group] add 'members' tab

This commit is contained in:
llj
2013-03-31 14:46:40 +08:00
parent 58ecb7298c
commit 225e5d7519
8 changed files with 95 additions and 1 deletions

View File

@@ -15,6 +15,7 @@
<li class="tabnav-tab"><a href="{% url 'group_info' group.id %}">{% trans "Libraries" %}</a></li>
<li class="tabnav-tab tabnav-tab-cur">{% trans "Discussion" %}</li>
<li class="tabnav-tab"><a href="{% url 'group_wiki' group.id %}">{% trans "Wiki" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_members' group.id %}">{% trans "Members" %}</a></li>
{% if is_staff %}
<li class="tabnav-tab"><a href="{% url 'group_manage' group.id %}">{% trans "Admin" %}</a></li>
{% endif %}

View File

@@ -16,6 +16,7 @@
<li class="tabnav-tab tabnav-tab-cur">{% trans "Libraries" %}</li>
<li class="tabnav-tab"><a href="{% url 'group_discuss' group.id %}">{% trans "Discussion" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_wiki' group.id %}">{% trans "Wiki" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_members' group.id %}">{% trans "Members" %}</a></li>
{% if is_staff %}
<li class="tabnav-tab"><a href="{% url 'group_manage' group.id %}">{% trans "Admin" %}</a></li>
{% endif %}

View File

@@ -14,6 +14,7 @@
<li class="tabnav-tab"><a href="{% url 'group_info' group.id %}">{% trans "Libraries" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_discuss' group.id %}">{% trans "Discussion" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_wiki' group.id %}">{% trans "Wiki" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_members' group.id %}">{% trans "Members" %}</a></li>
<li class="tabnav-tab tabnav-tab-cur">{% trans "Admin" %}</li>
</ul>
</div>

View File

@@ -0,0 +1,65 @@
{% extends base_template %}
{% load seahub_tags avatar_tags group_avatar_tags i18n %}
{% load url from future %}
{% block sub_title %}{{group.group_name}} - {% endblock %}
{% block nav_group_class %}class="cur"{% endblock %}
{% block title_panel %}
<div class="tabnav">
<div class="grp-profile fright">
{% grp_avatar group.props.id 24 %}<span class="name">{{ group.group_name }}</span>
</div>
<ul class="tabnav-tabs">
<li class="tabnav-tab"><a href="{% url 'group_info' group.id %}">{% trans "Libraries" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_discuss' group.id %}">{% trans "Discussion" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_wiki' group.id %}">{% trans "Wiki" %}</a></li>
<li class="tabnav-tab tabnav-tab-cur">{% trans "Members" %}</li>
{% if is_staff %}
<li class="tabnav-tab"><a href="{% url 'group_manage' group.id %}">{% trans "Admin" %}</a></li>
{% endif %}
</ul>
</div>
{% endblock %}
{% block left_panel %}
{% endblock %}
{% block right_panel %}
<ul class="user-list">
{% for member in members %}
<li class="user ovhd">
<a href="{{ SITE_ROOT }}profile/{{ member.user_name }}/" class="pic fleft">{% avatar member.user_name 48 %}</a>
<div class="txt fright">
<a class="name" href="{{ SITE_ROOT }}profile/{{ member.user_name }}/">{{ member.user_name|email2nickname }}</a>
<p>{{ member.user_name }}</p>
{% if member.can_be_contact %}
<button class="add-as-contact" data-email="{{ member.user_name }}">{% trans "Add as contact" %}</button>
{% endif %}
</div>
</li>
{% endfor %}
</ul>
<form id="add-as-contact-form" class="hide" action="{{ SITE_ROOT }}contacts/add/" method="post">
<input type="hidden" name="user_email" value="{{ request.user.username }}" id="id_user_email" />
<label>{% trans "Email" %}</label><br />
<input id="contact_email" type="text" name="contact_email" maxlength="255" value="" /><br />
<label>{% trans "Name(optional)" %}</label><br />
<input id="id_contact_name" type="text" name="contact_name" maxlength="255" /><br />
<label>{% trans "Note(optional)" %}</label><br />
<input id="id_note" type="text" name="note" maxlength="255" /><br />
<input type="submit" value="{% trans "Submit" %}" class="submit" />
</form>
{% endblock %}
{% block extra_script %}
<script type="text/javascript">
$('.add-as-contact').click(function() {
$('#contact_email').val($(this).data('email'));
$('#add-as-contact-form').submit();
});
</script>
{% endblock %}

View File

@@ -16,6 +16,7 @@
<li class="tabnav-tab"><a href="{% url 'group_info' group.id %}">{% trans "Libraries" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_discuss' group.id %}">{% trans "Discussion" %}</a></li>
<li class="tabnav-tab tabnav-tab-cur">{% trans "Wiki" %}</li>
<li class="tabnav-tab"><a href="{% url 'group_members' group.id %}">{% trans "Members" %}</a></li>
{% if is_staff %}
<li class="tabnav-tab"><a href="{% url 'group_manage' group.id %}">{% trans "Admin" %}</a></li>
{% endif %}

View File

@@ -15,6 +15,7 @@
<li class="tabnav-tab"><a href="{% url 'group_info' group.id %}">{% trans "Libraries" %}</a></li>
<li class="tabnav-tab"><a href="{% url 'group_discuss' group.id %}">{% trans "Discussion" %}</a></li>
<li class="tabnav-tab tabnav-tab-cur">{% trans "Wiki" %}</li>
<li class="tabnav-tab"><a href="{% url 'group_members' group.id %}">{% trans "Members" %}</a></li>
{% if is_staff %}
<li class="tabnav-tab"><a href="{% url 'group_manage' group.id %}">{% trans "Admin" %}</a></li>
{% endif %}

View File

@@ -1,6 +1,6 @@
from django.conf.urls.defaults import *
from views import group_info, group_member_operations, group_add_admin, \
from views import group_info, group_members, group_member_operations, group_add_admin, \
group_manage, msg_reply, msg_reply_new, group_recommend, \
create_group_repo, group_joinrequest, attention, group_message_remove, \
group_remove_admin, group_discuss, group_wiki, group_wiki_create, \
@@ -27,6 +27,7 @@ urlpatterns = patterns('',
url(r'^(?P<group_id>\d+)/revoke_pub/$', group_revoke_public, name='group_revoke_pub'),
url(r'^(?P<group_id>\d+)/quit/$', group_quit, name='group_quit'),
url(r'^(?P<group_id>[\d]+)/create-repo/$', create_group_repo, name='create_group_repo'),
url(r'^(?P<group_id>[\d]+)/members/$', group_members, name='group_members'),
(r'^(?P<group_id>[\d]+)/member/(?P<user_name>[^/]+)/$', group_member_operations),
url(r'^(?P<group_id>\d+)/msgdel/(?P<msg_id>\d+)/$', group_message_remove, name='group_message_remove'),
url(r'^(?P<group_id>\d+)/admin/add/$', group_add_admin, name='group_add_admin'),

View File

@@ -468,6 +468,29 @@ def group_info(request, group):
'group_members_default_display': GROUP_MEMBERS_DEFAULT_DISPLAY,
}, context_instance=RequestContext(request));
@group_check
def group_members(request, group):
# Get all group members.
members = get_group_members(group.id)
user = request.user.username
contacts = Contact.objects.filter(user_email=user)
contact_emails = []
for c in contacts:
contact_emails.append(c.contact_email)
for m in members:
if m.user_name == user or m.user_name in contact_emails:
m.can_be_contact = False
else:
m.can_be_contact = True
return render_to_response("group/group_members.html", {
"members": members,
"group" : group,
"is_staff": group.is_staff,
}, context_instance=RequestContext(request));
@login_required
@group_staff_required
def group_manage(request, group_id):