From 110ee58b713950bbead36dac706ea80fd5e9db98 Mon Sep 17 00:00:00 2001
From: Nick Winter <livelily@gmail.com>
Date: Thu, 22 Oct 2015 06:42:42 -0700
Subject: [PATCH] Fix 3126: campaigns not respecting i18n-coverage query

---
 server/campaigns/campaign_handler.coffee | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/server/campaigns/campaign_handler.coffee b/server/campaigns/campaign_handler.coffee
index 6b40def2e..de5e06181 100644
--- a/server/campaigns/campaign_handler.coffee
+++ b/server/campaigns/campaign_handler.coffee
@@ -39,7 +39,13 @@ CampaignHandler = class CampaignHandler extends Handler
   get: (req, res) ->
     return @sendForbiddenError(res) if not @hasAccess(req)
     # We don't have normal text search or anything set up to make /db/campaign work, so we'll just give them all campaigns, no problem.
-    q = @modelClass.find {}
+    query = {}
+    projection = {}
+    if @modelClass.schema.uses_coco_translation_coverage and req.query.view is 'i18n-coverage'
+      query = i18nCoverage: {$exists: true}
+      if req.query.project
+        projection[field] = 1 for field in req.query.project.split(',')
+    q = @modelClass.find query, projection
     q.exec (err, documents) =>
       return @sendDatabaseError(res, err) if err
       documents = (@formatEntity(req, doc) for doc in documents)