Add Users List Developer view which is available at /site/user/list. Add User list custom templates which are used with list_helpers. Add "Users List" link in base.html template.
authorPawel Solyga <Pawel.Solyga@gmail.com>
Mon, 22 Sep 2008 14:13:32 +0000
changeset 186 da76f08b1752
parent 185 2f3bd84bb106
child 187 2c0a497b2b2a
Add Users List Developer view which is available at /site/user/list. Add User list custom templates which are used with list_helpers. Add "Users List" link in base.html template. Patch by: Pawel Solyga Reviewed by: to-be-reviewed
app/soc/templates/soc/base.html
app/soc/templates/soc/site/user/list/all.html
app/soc/templates/soc/site/user/list/user_heading.html
app/soc/templates/soc/site/user/list/user_row.html
app/soc/views/site/user/list.py
app/urls.py
--- a/app/soc/templates/soc/base.html	Mon Sep 22 14:08:37 2008 +0000
+++ b/app/soc/templates/soc/base.html	Mon Sep 22 14:13:32 2008 +0000
@@ -92,7 +92,10 @@
                        <li>
             <a href="/site/user/profile">Create New User</a>
                         </li>
-                    </ul>	          
+                       <li>
+            <a href="/site/user/list">Users List</a>
+                        </li>
+                    </ul>
 	      </li>
 	  </ul>
 {% endif %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/templates/soc/site/user/list/all.html	Mon Sep 22 14:13:32 2008 +0000
@@ -0,0 +1,31 @@
+{% extends "soc/base.html" %}
+{% comment %}
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+{% load forms_helpers %}
+{% block page_title %}
+Developer: Users List
+{% endblock %}
+{% block header_title %}
+Users List
+{% endblock %}
+{% block body %}
+<p>
+<p>
+{% block instructions %}
+List of an existing Users in Google Open Source Programs.
+{% endblock %}
+</p>
+{% include list_main %}
+</p>
+{% endblock %}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/templates/soc/site/user/list/user_heading.html	Mon Sep 22 14:13:32 2008 +0000
@@ -0,0 +1,6 @@
+<tr align="left">
+  <th class="first" align="right">Id</th>
+  <th>Email</th>
+  <th>Nickname</th>
+  <th>Linkname</th>
+</tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/templates/soc/site/user/list/user_row.html	Mon Sep 22 14:13:32 2008 +0000
@@ -0,0 +1,10 @@
+<tr class="off" onmouseover="this.className='on'" onmouseout="this.className='off'" 
+onclick="document.location.href='/site/user/profile/{{ data_element.link_name }}'" name="name">
+  <td align="right"><div class="id"><a class="noul"
+         href="/site/user/profile/{{ data_element.link_name }}">{{ data_element.id }}</a>
+     </div>
+  </td>
+  <td><div class="email">{{ data_element.id.email }}</a></div></td>
+  <td><div class="nickname">{{ data_element.nick_name }}</div></td>
+  <td><div class="linkname">{{ data_element.link_name }}</div></td>
+</tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/views/site/user/list.py	Mon Sep 22 14:13:32 2008 +0000
@@ -0,0 +1,61 @@
+#!/usr/bin/python2.5
+#
+# Copyright 2008 the Melange authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Developer views for listing User profiles.
+"""
+
+__authors__ = [
+  '"Pawel Solyga" <pawel.solyga@gmail.com>',
+  ]
+
+
+from soc.logic.site import id_user
+from soc.views import simple
+from soc.views.helpers import list_helpers
+from soc.views.helpers import response_helpers
+
+import soc.models.user
+
+DEF_SITE_USER_LIST_ALL_TMPL = 'soc/site/user/list/all.html'
+
+def all(request, template=DEF_SITE_USER_LIST_ALL_TMPL):
+  """Show a list of all Users (limit rows per page).
+  """
+  # create default template context for use with any templates
+  context = response_helpers.getUniversalContext(request)
+
+  alt_response = simple.getAltResponseIfNotDeveloper(request,
+                                                     context=context)
+  if alt_response:
+    return alt_response  
+  
+  offset = request.GET.get('offset')
+  limit = request.GET.get('limit')
+
+  offset, limit = list_helpers.getListParemeters(offset, limit)
+  
+  users = id_user.getUsersForOffsetAndLimit(offset, limit)
+  
+  list_templates = {'list_main': 'soc/list/list_main.html',
+                    'list_pagination': 'soc/list/list_pagination.html',
+                    'list_row': 'soc/site/user/list/user_row.html',
+                    'list_heading': 'soc/site/user/list/user_heading.html'}
+                      
+  context = list_helpers.setList(request, context, users, 
+                                 offset, limit, list_templates)
+
+  return response_helpers.respond(request, template, context)
+                 
\ No newline at end of file
--- a/app/urls.py	Mon Sep 22 14:08:37 2008 +0000
+++ b/app/urls.py	Mon Sep 22 14:13:32 2008 +0000
@@ -40,7 +40,12 @@
     (r'^site/user/profile$', 'soc.views.site.user.profile.edit'),
     (r'^site/user/profile/(?P<linkname>[_0-9a-z]+)$',
      'soc.views.site.user.profile.edit'),
-
+    (r'^site/user/list$', 'soc.views.site.user.list.all'),
+    
+    # TODO(pawel.solyga): uncomment when the view functions are committed
+    #(r'^site/sponsor/profile$', 'soc.views.site.sponsor.profile.edit'),
+    #(r'^site/sponsor/list$', 'soc.views.site.sponsor.list.all'),
+    
     (r'^user/profile$', 'soc.views.user.profile.edit'),
     (r'^user/profile/(?P<linkname>[_0-9a-z]+)$',
      'soc.views.user.profile.edit'),