changeset 177:1a7d4c9cbf70

Added 'your personas' section.
author Atul Varma <varmaa@toolness.com>
date Wed, 16 Apr 2008 19:18:39 -0700
parents 824a27b7f869
children ba0b8a29e034
files personasbackend/personas/sections.py personasbackend/personas/templates/personas/list.html personasbackend/personas/templates/personas/your-personas.html personasbackend/personas/urls.py personasbackend/personas/views.py
diffstat 5 files changed, 41 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/personasbackend/personas/sections.py	Wed Apr 16 19:00:21 2008 -0700
+++ b/personasbackend/personas/sections.py	Wed Apr 16 19:18:39 2008 -0700
@@ -24,13 +24,14 @@
     def filter_sidebar_entries( self, user ):
         entries = []
         for section in self.sidebar_entries:
-            include = False
+            include = True
             if section.needs_perm:
-                if ( user.is_authenticated() and
-                     user.has_perm(section.needs_perm) ):
-                    include = True
-            else:
-                include = True
+                if not ( user.is_authenticated() and
+                         user.has_perm(section.needs_perm) ):
+                    include = False
+            elif section.needs_auth:
+                if not user.is_authenticated():
+                    include = False
             if include:
                 entries.append( section )
         return entries
@@ -38,12 +39,14 @@
 class Section( object ):
     def __init__( self, name, view, in_sidebar = False,
                   parent_name = None,
-                  needs_perm = None ):
+                  needs_perm = None,
+                  needs_auth = False ):
         self.name = name
         self.view = view
         self.in_sidebar = in_sidebar
         self.parent_name = parent_name
         self.needs_perm = needs_perm
+        self.needs_auth = needs_auth
 
         # This will be filled out by the parent Sections object.
         self.parents = []
@@ -63,6 +66,11 @@
              "personasbackend.personas.views.new_view",
              parent_name = "Home",
              in_sidebar = True ),
+    Section( "Your Personas",
+             "personasbackend.personas.views.your_personas_view",
+             parent_name = "Home",
+             in_sidebar = True,
+             needs_auth = True ),
     Section( "Administer",
              "django.contrib.admin.views.main.index",
              parent_name = "Home",
--- a/personasbackend/personas/templates/personas/list.html	Wed Apr 16 19:00:21 2008 -0700
+++ b/personasbackend/personas/templates/personas/list.html	Wed Apr 16 19:18:39 2008 -0700
@@ -2,6 +2,7 @@
 
 {% block content %}
 {% if personas %}
+{% block intro %}
 <p>Here's a list of all available Personas.</p>
 <p>If you have the Personas extension installed, just mouseover the
 preview image for a Persona to preview it&mdash;when your mouse moves
@@ -9,6 +10,7 @@
 <p>If you like the Persona, you can click on the preview image to set it
 as your current Persona.</p>
 <p>Enjoy!</p>
+{% endblock %}
 {% for persona in personas %}
 <div class="corner-box">
   {% include "personas/thumbnail.html" %}
@@ -40,6 +42,8 @@
 </div>
 {% endfor %}
 {% else %}
+{% block no-personas %}
 <p>There are currently no personas available.</p>
+{% endblock %}
 {% endif %}
 {% endblock %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/personasbackend/personas/templates/personas/your-personas.html	Wed Apr 16 19:18:39 2008 -0700
@@ -0,0 +1,10 @@
+{% extends "personas/list.html" %}
+
+{% block intro %}
+<p>These are your personas.</p>
+{% endblock %}
+
+{% block no-personas %}
+<p>You don't currently have any Personas.
+<a href="{% url your-personas %}">Please submit one!</a></p>
+{% endblock %}
--- a/personasbackend/personas/urls.py	Wed Apr 16 19:00:21 2008 -0700
+++ b/personasbackend/personas/urls.py	Wed Apr 16 19:18:39 2008 -0700
@@ -47,6 +47,8 @@
         name='edit-persona'),
     url(r'^list/$', 'personasbackend.personas.views.list_view',
         name='list-personas'),
+    url(r'^yours/$', 'personasbackend.personas.views.your_personas_view',
+        name='your-personas'),
     url(r'^$', 'personasbackend.personas.views.home_view',
         name='personas-home'),
 
--- a/personasbackend/personas/views.py	Wed Apr 16 19:00:21 2008 -0700
+++ b/personasbackend/personas/views.py	Wed Apr 16 19:18:39 2008 -0700
@@ -74,6 +74,16 @@
     return HttpResponse( image_data,
                          mimetype = mimetype )
 
+@login_required
+def your_personas_view( request ):
+    personas = models.Persona.objects.filter( owner=request.user )
+    return render_to_response(
+        "personas/your-personas.html",
+        { "personas" : personas,
+          "title" : "Your Personas" },
+        context_instance = RequestContext(request)
+        )
+
 def list_view( request ):
     personas = models.Persona.objects.filter( status="published" )
     return render_to_response(