Implement a Developer list view of all Documents.
authorTodd Larsen <tlarsen@google.com>
Wed, 01 Oct 2008 05:15:29 +0000
changeset 234 a019afb4b80f
parent 233 42733f531ebf
child 235 17b35a1f2868
Implement a Developer list view of all Documents. Patch by: Todd Larsen Review by: to-be-reviewed
app/soc/templates/soc/site/docs/list/all.html
app/soc/templates/soc/site/docs/list/docs_heading.html
app/soc/templates/soc/site/docs/list/docs_row.html
app/soc/views/site/docs/list.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/templates/soc/site/docs/list/all.html	Wed Oct 01 05:15:29 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 %}
+Site: Documents List
+{% endblock %}
+{% block header_title %}
+Documents List
+{% endblock %}
+{% block body %}
+<p>
+<p>
+{% block instructions %}
+List of Documents 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/docs/list/docs_heading.html	Wed Oct 01 05:15:29 2008 +0000
@@ -0,0 +1,8 @@
+<tr align="left">
+  <th>Path</th>
+  <th>Title</th>
+  <th>Partial Path</th>
+  <th>Linkname</th>
+  <th>Created</th>
+  <th>Modified</th>
+</tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/templates/soc/site/docs/list/docs_row.html	Wed Oct 01 05:15:29 2008 +0000
@@ -0,0 +1,14 @@
+<tr class="off" onmouseover="this.className='on'" onmouseout="this.className='off'" 
+onclick="document.location.href='/site/docs/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}'" name="name">
+  <td align="right">
+   <div class="title">
+    <a class="noul"
+     href="/site/docs/edit/{{ data_element.partial_path }}/{{ data_element.link_name }}">{{ data_element.partial_path}}/{{ data_element.link_name }}</a>
+   </div>
+  </td>
+  <td><div class="title">{{ data_element.title }}</div></td>
+  <td><div class="partialpath">{{ data_element.partial_path }}</div></td>
+  <td><div class="linkname">{{ data_element.link_name }}</div></td>
+  <td><div class="created">{{ data_element.created }}</div></td>
+  <td><div class="modified">{{ data_element.modified }}</div></td>
+</tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/views/site/docs/list.py	Wed Oct 01 05:15:29 2008 +0000
@@ -0,0 +1,72 @@
+#!/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 Documents.
+"""
+
+__authors__ = [
+  '"Todd Larsen" <tlarsen@google.com>',
+  ]
+
+
+from soc.logic import document
+from soc.views import simple
+from soc.views.helpers import list_helpers
+from soc.views.helpers import response_helpers
+
+import soc.models.document
+
+
+DEF_SITE_DOCS_LIST_ALL_TMPL = 'soc/site/docs/list/all.html'
+
+def all(request, template=DEF_SITE_DOCS_LIST_ALL_TMPL):
+  """Show a list of all Documents (limit rows per page).
+  
+  Args:
+    request: the standard Django HTTP request object
+    template: the "sibling" template (or a search list of such templates)
+      from which to construct an alternate template name (or names)
+
+  Returns:
+    A subclass of django.http.HttpResponse which either contains the form to
+    be filled out, or a redirect to the correct view in the interface.
+  """
+  # 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=offset, limit=limit)
+  
+  docs = document.getWorksForOffsetAndLimit(
+      offset=offset, limit=limit, cls=soc.models.document.Document)
+
+  list_templates = {'list_main': 'soc/list/list_main.html',
+                    'list_pagination': 'soc/list/list_pagination.html',
+                    'list_row': 'soc/site/docs/list/docs_row.html',
+                    'list_heading': 'soc/site/docs/list/docs_heading.html'}
+                      
+  context = list_helpers.setList(
+      request, context, docs, 
+      offset=offset, limit=limit, list_templates=list_templates)
+
+  return response_helpers.respond(request, template, context)