Mercurial > hg > savane-forge
changeset 188:469c9b64a556
Interface to add members to a project
author | Sylvain Beucler <beuc@beuc.net> |
---|---|
date | Sun, 25 Jul 2010 14:50:51 +0200 |
parents | 95a750a73174 |
children | 508ab7cdef8d |
files | savane/svmain/models.py savane/svmain/urls.py savane/svmain/views.py templates/svmain/group_admin_members.html templates/svmain/group_admin_members_add.html |
diffstat | 5 files changed, 83 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/savane/svmain/models.py +++ b/savane/svmain/models.py @@ -533,7 +533,7 @@ blank=True, help_text="membership properties") onduty = models.BooleanField(default=True, help_text="Untick to hide emeritous members from the project page") - since = models.DateField(blank=True, null=True) + since = models.DateField(auto_now_add=True, blank=True, null=True) # TODO: split news params #news_flags int(11) default NULL
--- a/savane/svmain/urls.py +++ b/savane/svmain/urls.py @@ -93,6 +93,9 @@ url(r'^p/(?P<slug>[-\w]+)/admin/members/$', views.group_admin_members, { 'extra_context' : { 'title' : 'Administration Summary: Manage Members' }, }, name='savane.svmain.group_admin_members'), + url(r'^p/(?P<slug>[-\w]+)/admin/members/add/$', views.group_admin_members_add, + { 'extra_context' : { 'title' : 'Administration Summary: Manage Members' }, }, + name='savane.svmain.group_admin_members_add'), ) urlpatterns += patterns ('',
--- a/savane/svmain/views.py +++ b/savane/svmain/views.py @@ -108,3 +108,25 @@ } context.update(extra_context) return context + +def group_admin_members_add(request, slug, extra_context={}): + group = get_object_or_404(auth_models.Group, name=slug) + + if request.method == "POST": + user = get_object_or_404(auth_models.User, pk=int(request.POST['user_id'])) + svmain_models.Membership(user=user, group=group, admin_flags='').save() + return HttpResponseRedirect('../') + + from django.views.generic.list_detail import object_list + from savane.filters import search + from django.contrib.auth.admin import UserAdmin + context = {} + context.update(extra_context) + context.update({'group' : group}) + queryset = auth_models.User.objects.filter(is_active=True).exclude(pk__in=group.user_set.all()) + return search(object_list)(request, + queryset=queryset, + paginate_by=20, + model_admin=UserAdmin, + extra_context=context, + template_name='svmain/group_admin_members_add.html')
--- a/templates/svmain/group_admin_members.html +++ b/templates/svmain/group_admin_members.html @@ -14,13 +14,16 @@ {% block content %} -<p>Members:</p> +<p>Members:<br /> <form action="" method="POST">{% csrf_token %} <table> <tr><th>User</th><th>Admin</th><th>Remove?</th></tr> {% for membership in memberships %} <tr> - <td>{{ membership.user.get_full_name }} <{{ membership.user.username }}></td> + <td> + {{ membership.user.get_full_name }} + <<a href="{% url savane.svmain.user_detail membership.user.username %}">{{ membership.user.username }}</a>> + </td> <td> {% ifequal request.user membership.user %} <em>{% trans "You are Admin" %}</em>
new file mode 100644 --- /dev/null +++ b/templates/svmain/group_admin_members_add.html @@ -0,0 +1,52 @@ +{% extends "base.html" %} +{% load i18n %} +{% load svtopmenu %} + +{% block title %} +{{group.svgroupinfo.full_name_display}} - {{title}} +{% endblock %} + +{% block icon %}preferences{% endblock %} + +{% block topmenu %} + {% svtopmenu "group" %} +{% endblock %} + +{% block content %} + +{% include "svmain/pagination.inc.html" %} + +<form action="." method="GET"> + {% trans "Search" %}: <input type="text" name="q" value="{{q}}" /> +</form> + +{% if object_list %} + <table> + <tr><th>User</th><th>Full name</th><th>Profile</th><th></th></tr> + {% for object in object_list %} + <tr> + <td>{{ object.username }}</td> + <td>{{ object.get_full_name }}</td> + <td><a href="{% url savane.svmain.user_detail object.username %}">{% trans 'view' %}</a></td> + <td> + <form action="" method="POST">{% csrf_token %} + <input type="hidden" name="user_id" value="{{object.pk}}" /> + <input type="submit" value="{% trans 'Add' %}" /> + </form> + </td> + </tr> + {% endfor %} + </table> +{% else %} + <p>{% trans "All other users are members of your group!" %}</p> +{% endif %} + +{% endblock %} + +{% comment %} +Local Variables: ** +mode: django-html ** +tab-width: 4 ** +indent-tabs-mode: nil ** +End: ** +{% endcomment %}