savannah-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-cvs] [SCM] Savane-cleanup framework branch, master, updated. 8


From: Sylvain Beucler
Subject: [Savannah-cvs] [SCM] Savane-cleanup framework branch, master, updated. 808ab74cb6e9ffe3907f6a71a31a13aecada0010
Date: Sun, 25 Jul 2010 12:50:58 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Savane-cleanup framework".

The branch, master has been updated
       via  808ab74cb6e9ffe3907f6a71a31a13aecada0010 (commit)
      from  e88f33cdd0fddf4819cda2ce99edac964ab54240 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/savane-cleanup/framework.git/commit/?id=808ab74cb6e9ffe3907f6a71a31a13aecada0010

commit 808ab74cb6e9ffe3907f6a71a31a13aecada0010
Author: Sylvain Beucler <address@hidden>
Date:   Sun Jul 25 14:50:51 2010 +0200

    Interface to add members to a project

diff --git a/savane/svmain/models.py b/savane/svmain/models.py
index ec221b3..b79ae43 100644
--- a/savane/svmain/models.py
+++ b/savane/svmain/models.py
@@ -533,7 +533,7 @@ class Membership(models.Model):
       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
diff --git a/savane/svmain/urls.py b/savane/svmain/urls.py
index 8e1245e..dd596ec 100644
--- a/savane/svmain/urls.py
+++ b/savane/svmain/urls.py
@@ -93,6 +93,9 @@ urlpatterns += decorated_patterns ('', only_project_admin,
   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 ('',
diff --git a/savane/svmain/views.py b/savane/svmain/views.py
index fd15be7..5a3c7fc 100644
--- a/savane/svmain/views.py
+++ b/savane/svmain/views.py
@@ -108,3 +108,25 @@ def group_admin_members(request, slug, extra_context={}):
         }
     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')
diff --git a/templates/svmain/group_admin_members.html 
b/templates/svmain/group_admin_members.html
index c02ce8a..17f592c 100644
--- 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 }} &lt;{{ membership.user.username 
}}&gt;</td>
+  <td>
+    {{ membership.user.get_full_name }}
+    &lt;<a href="{% url savane.svmain.user_detail membership.user.username 
%}">{{ membership.user.username }}</a>&gt;
+  </td>
   <td>
     {% ifequal request.user membership.user %}
     <em>{% trans "You are Admin" %}</em>
diff --git a/templates/svmain/group_admin_members_add.html 
b/templates/svmain/group_admin_members_add.html
new file mode 100644
index 0000000..8f68bac
--- /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 %}

-----------------------------------------------------------------------

Summary of changes:
 savane/svmain/models.py                       |    2 +-
 savane/svmain/urls.py                         |    3 +
 savane/svmain/views.py                        |   22 ++++++++++
 templates/svmain/group_admin_members.html     |    7 ++-
 templates/svmain/group_admin_members_add.html |   52 +++++++++++++++++++++++++
 5 files changed, 83 insertions(+), 3 deletions(-)
 create mode 100644 templates/svmain/group_admin_members_add.html


hooks/post-receive
-- 
Savane-cleanup framework



reply via email to

[Prev in Thread] Current Thread [Next in Thread]