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. 8c774a83f0bd86d326a51a16e19fc26f1bbfa8f0
Date: Thu, 15 Jul 2010 09:52:06 +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  8c774a83f0bd86d326a51a16e19fc26f1bbfa8f0 (commit)
      from  b57dba6dfdd8df2b0f3451e2add4386cf73dc296 (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=8c774a83f0bd86d326a51a16e19fc26f1bbfa8f0

commit 8c774a83f0bd86d326a51a16e19fc26f1bbfa8f0
Author: Sylvain Beucler <address@hidden>
Date:   Thu Jul 15 11:50:36 2010 +0200

    Organized ExtendedUser<->ExtendedGroup relationship

diff --git a/TODO b/TODO
index 44db1ee..f77e8ca 100644
--- a/TODO
+++ b/TODO
@@ -17,7 +17,7 @@ improve it.
 
     [/] Group page
 
-    [ ] Members list + GPG keyring
+    [/] Members list + GPG keyring
 
     [/] Account conf
 
diff --git a/savane/my/filters.py b/savane/my/filters.py
new file mode 100644
index 0000000..7637c87
--- /dev/null
+++ b/savane/my/filters.py
@@ -0,0 +1,36 @@
+# Only select information related to the current user
+# Copyright (C) 2010  Sylvain Beucler
+#
+# This file is part of Savane.
+# 
+# Savane is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+# 
+# Savane is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+# 
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+def only_mine(f):
+    """Filter a generic query_set to only display objets related to
+    the current user"""
+    def _fd(request, queryset, *args, **kwargs):
+        user = request.user
+        queryset = queryset.filter(user=user.id)
+        return f(request, queryset, *args, **kwargs)
+    return _fd
+
+#def only_my_groups(f):
+#    """
+#    Filter groups that the current user is member of
+#    """
+#    def _fd(request, queryset, *args, **kwargs):
+#        user = request.user
+#        queryset = queryset.filter(extendeduser=user.id)
+#        return f(request, queryset, *args, **kwargs)
+#    return _fd
diff --git a/savane/my/urls.py b/savane/my/urls.py
index cf5f88b..5f405a7 100644
--- a/savane/my/urls.py
+++ b/savane/my/urls.py
@@ -23,15 +23,7 @@ from django.views.generic.simple import direct_to_template
 from django.views.generic.list_detail import object_list
 import views
 import savane.svmain.models as svmain_models
-
-def only_mine(f):
-    """Filter a generic query_set to only display objets related to
-    the current user"""
-    def _dec(request, queryset, *args, **kwargs):
-        user = request.user
-        queryset = queryset.filter(user=user.id)
-        return f(request, queryset, *args, **kwargs)
-    return _dec
+from savane.my.filters import *
 
 # Batch-decorator for urlpatterns
 # http://www.djangosnippets.org/snippets/532/
diff --git a/savane/svmain/fixtures/demo/users_groups.yaml 
b/savane/svmain/fixtures/demo/users_groups.yaml
new file mode 100644
index 0000000..7a1e950
--- /dev/null
+++ b/savane/svmain/fixtures/demo/users_groups.yaml
@@ -0,0 +1,41 @@
+- model: svmain.groupconfiguration
+  pk: 1
+  fields:
+    name: "GNU projects"
+- model: auth.group
+  pk: 1
+  fields:
+    name: emacs
+- model: svmain.extendedgroup
+  pk: 1
+  fields:
+    type: 1
+    devel_status: 6
+    register_time: 2001-02-08 15:03:48
+- model: auth.user
+  pk: 1
+  fields:
+    username: admin
+    is_staff: true
+    is_superuser: true
+    password: sha1$2c71c$92bacf9046c9d9335dc13d1b8a8d57ea87f8e37e
+- model: svmain.extendeduser
+  pk: 1
+  fields:
+    status: 'A'
+- model: auth.user
+  pk: 2
+  fields:
+    username: rms
+    password: sha1$6bde8$748d99ad2f2493225efb0e6b78914c5c9a065275
+    groups: [1, ]
+- model: svmain.extendeduser
+  pk: 2
+  fields:
+    status: 'A'
+- model: svmain.membership
+  pk: 1
+  fields:
+    user: 2
+    group: 1
+    admin_flags: 'A'
diff --git a/savane/svmain/fixtures/developmentstatus.yaml 
b/savane/svmain/fixtures/developmentstatus.yaml
index b4fb1ea..6505c85 100644
--- a/savane/svmain/fixtures/developmentstatus.yaml
+++ b/savane/svmain/fixtures/developmentstatus.yaml
@@ -1,36 +1,36 @@
 - fields:
-    name: '0 - Undefined'
+    name: '1 - Planning'
   model: svmain.developmentstatus
   pk: 1
 - fields:
-    name: '1 - Planning'
+    name: '2 - Pre-Alpha'
   model: svmain.developmentstatus
   pk: 2
 - fields:
-    name: '2 - Pre-Alpha'
+    name: '3 - Alpha'
   model: svmain.developmentstatus
   pk: 3
 - fields:
-    name: '3 - Alpha'
+    name: '4 - Beta'
   model: svmain.developmentstatus
   pk: 4
 - fields:
-    name: '4 - Beta'
+    name: '5 - Production/Stable'
   model: svmain.developmentstatus
   pk: 5
 - fields:
-    name: '5 - Production/Stable'
+    name: '6 - Mature'
   model: svmain.developmentstatus
   pk: 6
 - fields:
-    name: '6 - Mature'
+    name: 'N/A'
   model: svmain.developmentstatus
   pk: 7
 - fields:
-    name: 'N/A'
+    name: '? - Orphaned/Unmaintained'
   model: svmain.developmentstatus
   pk: 8
 - fields:
-    name: '? - Orphaned/Unmaintained'
+    name: '0 - Undefined'
   model: svmain.developmentstatus
   pk: 9
diff --git a/savane/svmain/models.py b/savane/svmain/models.py
index ea6dbbd..9ff1d94 100644
--- a/savane/svmain/models.py
+++ b/savane/svmain/models.py
@@ -508,6 +508,13 @@ class Membership(models.Model):
     """
     Extra attributes about a User<->Group relationship
     (e.g. "is the user an admin?")
+
+    Consider this as metadata about an existing
+    django.contrib.auth.User.groups relationship; or a potential
+    relationship (e.g. pending membership waiting for admin approval).
+
+    The group membership is defined by the underlying User.groups
+    relationship, not this one.
     """
     user = models.ForeignKey(ExtendedUser)
     group = models.ForeignKey(ExtendedGroup)
diff --git a/savane/svmain/urls.py b/savane/svmain/urls.py
index f4a13dd..721f64f 100644
--- a/savane/svmain/urls.py
+++ b/savane/svmain/urls.py
@@ -46,7 +46,7 @@ urlpatterns = patterns ('',
         'slug_field' : 'username' },
       name='savane.svmain.user_detail'),
   url(r'^us/(?P<slug>[-\w]+)$', views.user_redir),
-  url(r'^users/(?P<slug>[-\w]+)$', views.user_redir),
+  url(r'^users/(?P<slug>[-\w]+)/?$', views.user_redir),
 
   url(r'^license/$', 'django.views.generic.list_detail.object_list',
       { 'queryset' : svmain_models.License.objects.all(), },
diff --git a/settings_default.py b/settings_default.py
index 1ee7c75..b9a0fec 100644
--- a/settings_default.py
+++ b/settings_default.py
@@ -54,6 +54,7 @@ TEMPLATE_LOADERS = (
 )
 
 TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
+    'django.core.context_processors.request',
     'savane.context_processors.media',
 )
 
diff --git a/templates/base.html b/templates/base.html
index 10168bc..48965e5 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -37,10 +37,12 @@
     </div>
     {% if user.is_authenticated %}
     <div class="fast_menu_user">
-      {{ user.username}} ({{ user.first_name }} {{ user.last_name }})
+      Connected as <a href="{% url savane.my.views.index %}">
+        {{ user.username}}
+        {% if user.first_name or user.last_name %}({{ user.first_name }} {{ 
user.last_name }}) {% endif %}
 <!--      <a href="">Items</a> -->
 <!--      <a href="">Groups</a> -->
-      <a href="{% url savane.my.views.sv_conf %}">Account Conf</a>
+      </a>
       | <a href="{% url django.contrib.auth.views.logout %}">Logout</a>
     </div>
     {% else %}
diff --git a/templates/my/index.html b/templates/my/index.html
index df6e09f..1750efe 100644
--- a/templates/my/index.html
+++ b/templates/my/index.html
@@ -2,5 +2,12 @@
 {% extends "base.html" %}
 
 {% block content %}
-My nice personal page.
+<p>My nice personal page.</p>
+
+<p>
+  <a href="{% url savane.my.views.sv_conf %}">Account configuration</a>
+| <a href="{% url savane.my.group_list %}">My groups</a>
+| <a href="{% url savane.svmain.user_detail request.user.username %}">My 
public page</a>
+</p>
+
 {% endblock %}
diff --git a/templates/svmain/extendedgroup_detail.html 
b/templates/svmain/extendedgroup_detail.html
index 7fc5905..e7538bc 100644
--- a/templates/svmain/extendedgroup_detail.html
+++ b/templates/svmain/extendedgroup_detail.html
@@ -12,7 +12,7 @@ Development status: {{object.devel_status}}<br />
 
 {% if object.user_set.all %}
 <ul>
-  {% for user in object.extendeduser_set.all %}
+  {% for user in object.user_set.all %}
   <li><a href="{{ user.get_absolute_url }}">{{ user.username }}</a></li>
   {% endfor %}
   </ul>
diff --git a/templates/svmain/extendeduser_detail.html 
b/templates/svmain/extendeduser_detail.html
index ca02608..0298ae3 100644
--- a/templates/svmain/extendeduser_detail.html
+++ b/templates/svmain/extendeduser_detail.html
@@ -25,7 +25,7 @@ Real name: {{object.first_name}} {{object.last_name}}</p>
 <ul>
   {% for membership in object.membership_set.all %}
   <li>
-    <a href="{{ membership.group.get_absolute_url }}">{{ membership.group.name 
}}</a> {{ membership.admin_flags}}
+    <a href="{{ membership.group.get_absolute_url }}">{{ membership.group.name 
}}</a> - with flags: {{ membership.admin_flags}}
   </li>
   {% endfor %}
   </ul>
@@ -33,22 +33,6 @@ Real name: {{object.first_name}} {{object.last_name}}</p>
   Not part of any group yet
 {% endif %}
 
-
-<p>Is a member of (using Membership + direct field):</p>
-
-{% if object.extendedgroup_set.all %}
-<ul>
-  {% for group in object.extendedgroup_set.all %}
-  <li>
-    <a href="{{ group.get_absolute_url }}">{{ group.name }}</a>
-  </li>
-  {% endfor %}
-  </ul>
-{% else %}
-  Not part of any group yet
-{% endif %}
-
-
 {% endblock %}
 
 {% comment %}

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

Summary of changes:
 TODO                                          |    2 +-
 savane/my/filters.py                          |   36 ++++++++++++++++++++++
 savane/my/urls.py                             |   10 +-----
 savane/svmain/fixtures/demo/users_groups.yaml |   41 +++++++++++++++++++++++++
 savane/svmain/fixtures/developmentstatus.yaml |   18 +++++-----
 savane/svmain/models.py                       |    7 ++++
 savane/svmain/urls.py                         |    2 +-
 settings_default.py                           |    1 +
 templates/base.html                           |    6 ++-
 templates/my/index.html                       |    9 +++++-
 templates/svmain/extendedgroup_detail.html    |    2 +-
 templates/svmain/extendeduser_detail.html     |   18 +----------
 12 files changed, 111 insertions(+), 41 deletions(-)
 create mode 100644 savane/my/filters.py
 create mode 100644 savane/svmain/fixtures/demo/users_groups.yaml


hooks/post-receive
-- 
Savane-cleanup framework



reply via email to

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