[extensions-web] review: Allow extension authors to reject their own extensions



commit 45a43ebd4d3f76f674c466c0a969c71851e66e46
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Tue Feb 14 12:35:39 2012 -0500

    review: Allow extension authors to reject their own extensions
    
    Some extension authors may upload unfinished extensions. Most post
    a comment telling reviewers to reject their extension. Let's just provide
    an easy outlet for these users.

 sweettooth/review/views.py |   28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)
---
diff --git a/sweettooth/review/views.py b/sweettooth/review/views.py
index d7f4588..43eacae 100644
--- a/sweettooth/review/views.py
+++ b/sweettooth/review/views.py
@@ -259,23 +259,25 @@ def submit_review_view(request, obj):
 
     messages.info(request, "Thank you for reviewing %s" % (extension.name,))
 
-    if can_approve_extension(request.user, obj.extension):
-        status_string = request.POST.get('status')
-        newstatus = dict(approve=models.STATUS_ACTIVE,
-                         reject=models.STATUS_REJECTED).get(status_string, None)
+    status_string = request.POST.get('status')
+    newstatus = dict(approve=models.STATUS_ACTIVE,
+                     reject=models.STATUS_REJECTED).get(status_string, None)
 
-        if newstatus is not None:
-            log = ChangeStatusLog(user=request.user,
-                                  version=obj,
-                                  newstatus=newstatus)
-            log.save()
+    if newstatus is not None:
+        if newstatus == models.STATUS_ACTIVE and not can_approve_extension(request.user, extension):
+            return HttpResponseForbidden()
 
-            obj.status = newstatus
-            obj.save()
+        log = ChangeStatusLog(user=request.user,
+                              version=obj,
+                              newstatus=newstatus)
+        log.save()
 
-            review.changelog = log
+        obj.status = newstatus
+        obj.save()
 
-            models.status_changed.send(sender=request, version=obj, log=log)
+        review.changelog = log
+
+        models.status_changed.send(sender=request, version=obj, log=log)
 
     review.save()
 



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