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. a


From: Sylvain Beucler
Subject: [Savannah-cvs] [SCM] Savane-cleanup framework branch, master, updated. a3cdef07de462e20576a4c64890e3d88329ed665
Date: Fri, 23 Jul 2010 22:11:12 +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  a3cdef07de462e20576a4c64890e3d88329ed665 (commit)
      from  858b5bf7a63eb5bf9d3204169bcfe97d8e339618 (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=a3cdef07de462e20576a4c64890e3d88329ed665

commit a3cdef07de462e20576a4c64890e3d88329ed665
Author: Sylvain Beucler <address@hidden>
Date:   Sat Jul 24 00:11:04 2010 +0200

    Request for inclusion in a project

diff --git a/savane/my/urls.py b/savane/my/urls.py
index 11bf617..1d9c226 100644
--- a/savane/my/urls.py
+++ b/savane/my/urls.py
@@ -59,4 +59,9 @@ urlpatterns = decorated_patterns ('', login_required,
         'extra_context' : { 'title' : "My groups", },
         'template_name' : 'svmain/group_list.html', },
       name='savane.my.group_list'),
+  url(r'^memberships/$', only_mine(object_list),
+      { 'queryset' : svmain_models.Membership.objects.all(),
+        'extra_context' : { 'title' : "My memberships", },
+        },
+      name='savane.my.membership_list'),
 )
diff --git a/savane/svmain/urls.py b/savane/svmain/urls.py
index 6ba328e..156d554 100644
--- a/savane/svmain/urls.py
+++ b/savane/svmain/urls.py
@@ -51,13 +51,13 @@ urlpatterns += patterns ('',
         'extra_context' : { 'title' : 'Users' },
         'template_name' : 'svmain/user_list.html' },
       name='savane.svmain.user_list'),
-  url(r'^u/(?P<slug>[-\w]+)$', object_detail,
+  url(r'^u/(?P<slug>[-\w]+)/$', object_detail,
       { 'queryset' : auth_models.User.objects.all(),
         'slug_field' : 'username',
         'extra_context' : { 'title' : 'User detail' },
         'template_name' : 'svmain/user_detail.html', },
       name='savane.svmain.user_detail'),
-  url(r'^us/(?P<slug>[-\w]+)$', views.user_redir),
+  url(r'^us/(?P<slug>[-\w]+)/$', views.user_redir),
   url(r'^users/(?P<slug>[-\w]+)/?$', views.user_redir),
 )
 
@@ -71,14 +71,15 @@ urlpatterns += patterns ('',
         'extra_context' : { 'title' : 'Projects' },
         'template_name' : 'svmain/group_list.html' },
       name='savane.svmain.group_list'),
-  url(r'^p/(?P<slug>[-\w]+)$', object_detail,
+  url(r'^p/(?P<slug>[-\w]+)/$', object_detail,
       { 'queryset' : auth_models.Group.objects.all(),
         'slug_field' : 'name',
         'extra_context' : { 'title' : 'Project summary' },
         'template_name' : 'svmain/group_detail.html', },
       name='savane.svmain.group_detail'),
-  url(r'^pr/(?P<slug>[-\w]+)$', views.group_redir),
-  url(r'^projects/(?P<slug>[-\w]+)$', views.group_redir),
+  url(r'^pr/(?P<slug>[-\w]+)/$', views.group_redir),
+  url(r'^projects/(?P<slug>[-\w]+)/$', views.group_redir),
+  url(r'^p/(?P<slug>[-\w]+)/join/$', views.group_join),
 
   url(r'^license/$', 'django.views.generic.list_detail.object_list',
       { 'queryset' : svmain_models.License.objects.all(),
diff --git a/savane/svmain/views.py b/savane/svmain/views.py
index 7ad5e1f..3b159d5 100644
--- a/savane/svmain/views.py
+++ b/savane/svmain/views.py
@@ -20,11 +20,23 @@ from django.http import HttpResponseRedirect
 from django.shortcuts import render_to_response, get_object_or_404
 from django.core.urlresolvers import reverse
 import django.contrib.auth.models as auth_models
+from django.contrib import messages
+import models as svmain_models
 
 def user_redir(request, slug):
     u = get_object_or_404(auth_models.User, username=slug)
     return HttpResponseRedirect(reverse('savane.svmain.user_detail', 
args=(slug,)))
 
 def group_redir(request, slug):
-    g = get_object_or_404(svmain_models.ExtendedGroup, name=slug)
+    g = get_object_or_404(auth_models.Group, name=slug)
     return HttpResponseRedirect(reverse('savane.svmain.group_detail', 
args=(slug,)))
+
+def group_join(request, slug):
+    g = get_object_or_404(auth_models.Group, name=slug)
+    if svmain_models.Membership.objects.filter(user=request.user, 
group=g).count():
+        messages.error(request, u"Request for inclusion already registered")
+    else:
+        svmain_models.Membership(user=request.user, group=g, 
admin_flags='P').save()
+        # TODO: send e-mail notification to group admins
+        messages.success(request, u"Request for inclusion sent to project 
administrators")
+    return HttpResponseRedirect('../')
diff --git a/templates/my/index.html b/templates/my/index.html
index 4e92899..f9c27a0 100644
--- a/templates/my/index.html
+++ b/templates/my/index.html
@@ -10,6 +10,7 @@
       <a href="{% url savane.my.views.sv_ssh_gpg %}">SSH &amp; GPG</a><br />
       <a href="{% url savane.my.views.sv_resume_skill %}">My resume &amp; 
skills</a><br />
       <a href="{% url savane.my.group_list %}">My groups</a><br />
+      <a href="{% url savane.my.membership_list %}">My memberships</a><br />
     </p>
   </div>
 
diff --git a/templates/svmain/group_detail.html 
b/templates/svmain/group_detail.html
index 86cc3f2..6b1a8d0 100644
--- a/templates/svmain/group_detail.html
+++ b/templates/svmain/group_detail.html
@@ -1,4 +1,5 @@
 {% extends "base.html" %}
+{% load i18n %}
 
 {% block content %}
 
@@ -20,6 +21,12 @@ Development status: {{object.svgroupinfo.devel_status}}<br />
   No members!
 {% endif %}
 
+{% if user.is_authenticated %}
+<form action="join/" method="POST">{% csrf_token %}
+<input type="submit" value="{% trans 'Join this project' %}" />
+</form>
+{% endif %}
+
 {% endblock %}
 
 {% comment %}
diff --git a/templates/svmain/membership_list.html 
b/templates/svmain/membership_list.html
new file mode 100644
index 0000000..9dd0959
--- /dev/null
+++ b/templates/svmain/membership_list.html
@@ -0,0 +1,31 @@
+{% extends "base.html" %}
+
+{% block content %}
+
+{% regroup object_list by get_admin_flags_display as type_list %}
+
+{% if type_list %}
+  <ul>
+  {% for type in type_list %}
+    <li>{{ type.grouper }}
+      <ul>
+        {% for object in type.list %}
+        <li><a href="{% url savane.svmain.group_detail object.group.name 
%}">{{ object.group.name }}</a> ({{ object.admin_flags }})</li>
+        {% endfor %}
+      </ul>
+    </li>
+  {% endfor %}
+  </ul>
+{% else %}
+  <p>No memberships.</p>
+{% endif %}
+
+{% endblock %}
+
+{% comment %}
+Local Variables: **
+mode: django-html **
+tab-width: 4 **
+indent-tabs-mode: nil **
+End: **
+{% endcomment %}

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

Summary of changes:
 savane/my/urls.py                     |    5 +++++
 savane/svmain/urls.py                 |   11 ++++++-----
 savane/svmain/views.py                |   14 +++++++++++++-
 templates/my/index.html               |    1 +
 templates/svmain/group_detail.html    |    7 +++++++
 templates/svmain/membership_list.html |   31 +++++++++++++++++++++++++++++++
 6 files changed, 63 insertions(+), 6 deletions(-)
 create mode 100644 templates/svmain/membership_list.html


hooks/post-receive
-- 
Savane-cleanup framework



reply via email to

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