[extensions-web] Add a new file list view



commit 7e0e4e67dde6f2e8377b2a323513fdb866737c5a
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon Nov 14 17:18:46 2011 -0500

    Add a new file list view

 sweettooth/review/urls.py  |    1 +
 sweettooth/review/views.py |   24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/sweettooth/review/urls.py b/sweettooth/review/urls.py
index 2dd0b7f..2ef6c17 100644
--- a/sweettooth/review/urls.py
+++ b/sweettooth/review/urls.py
@@ -11,6 +11,7 @@ urlpatterns = patterns('',
                                  template_name='review/list.html'),
         name='review-list'),
     url(r'^ajax/get-files/(?P<pk>\d+)', views.ajax_get_files_view, name='review-ajax-files'),
+    url(r'^ajax/get-file-list/(?P<pk>\d+)', views.ajax_get_file_list_view, name='review-ajax-file-list'),
     url(r'^submit/(?P<pk>\d+)', views.submit_review_view, name='review-submit'),
 
     url(r'^(?P<pk>\d+)', views.review_version_view, name='review-version'),
diff --git a/sweettooth/review/views.py b/sweettooth/review/views.py
index 2fb5717..0794a36 100644
--- a/sweettooth/review/views.py
+++ b/sweettooth/review/views.py
@@ -81,6 +81,30 @@ def html_for_file(filename, raw):
 
 @ajax_view
 @model_view(models.ExtensionVersion)
+def ajax_get_file_list_view(request, obj):
+    version, extension = obj, obj.extension
+
+    if not can_review_extension(request.user, extension):
+        return HttpResponseForbidden()
+
+    version, extension = obj, obj.extension
+
+    new_zipfile = version.get_zipfile('r')
+    old_zipfile = extension.latest_version.get_zipfile('r')
+
+    new_filelist = set(new_zipfile.namelist())
+    old_filelist = set(old_zipfile.namelist())
+
+    both    = new_filelist & old_filelist
+    added   = new_filelist - old_filelist
+    deleted = old_filelist - new_filelist
+
+    return dict(both=sorted(both),
+                added=sorted(added),
+                deleted=sorted(deleted))
+
+ ajax_view
+ model_view(models.ExtensionVersion)
 def ajax_get_files_view(request, obj):
     if not can_review_extension(request.user, obj.extension):
         return HttpResponseForbidden()



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]