From 6845e01b5dde428652193dff8a663b78f8b6bda1 Mon Sep 17 00:00:00 2001
From: "Eduardo L. Buratti" <elb09@c3sl.ufpr.br>
Date: Wed, 23 Oct 2013 10:42:12 -0200
Subject: [PATCH] web: Fix location filter

Signed-off-by: Eduardo L. Buratti <elb09@c3sl.ufpr.br>
---
 web/assets/js/attendance.search.js |  7 ++++---
 web/routes/points.js               | 19 ++++++++++++++++---
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/web/assets/js/attendance.search.js b/web/assets/js/attendance.search.js
index 1643fe6..9070959 100644
--- a/web/assets/js/attendance.search.js
+++ b/web/assets/js/attendance.search.js
@@ -82,9 +82,10 @@ angular.module('datasid.attendance.search', []).
                 key: 'location',
                 title: 'Localização',
                 options: [
-                    { key: 'Maceio, AL', title: 'Maceio, AL', value: false },
-                    { key: 'Salvador, BA', title: 'Salvador, BA', value: false },
-                    { key: 'Manaus, AM', title: 'Manaus, AM', value: false }
+                    { key: 3106200, title: 'Belo Horizonte, MG', value: false },
+                    { key: 2927408, title: 'Salvador, BA', value: false },
+                    { key: 1501402, title: 'Belém, PA', value: false },
+                    { key: 5300108, title: 'Brasília, DF' , value: false }
                 ],
                 more: true
             }
diff --git a/web/routes/points.js b/web/routes/points.js
index 643da0b..13c23ab 100644
--- a/web/routes/points.js
+++ b/web/routes/points.js
@@ -18,17 +18,28 @@ exports.list = function(req, res) {
     for (var key in filters) {
         switch (key) {
         case "project":
+            var l = [];
             for (var i = 0; i < filters[key].length; i++) {
-                conditions.push("project = $"+(c++));
+                l.push("pt.project = $"+(c++));
                 parameters.push(filters[key][i]);
             }
-
+            if (l.length > 0)
+                conditions.push(l.join(' OR '));
+            break;
+        case "location":
+            var l = [];
+            for (var i = 0; i < filters[key].length; i++) {
+                l.push("pt.id_city = $"+(c++));
+                parameters.push(filters[key][i]);
+            }
+            if (l.length > 0)
+                conditions.push(l.join(' OR '));
             break;
         }
     }
 
     if (conditions.length > 0)
-        where = " AND (" + conditions.join(' OR ') + ")";
+        where = " AND (" + conditions.join(') AND (') + ")";
 
     var query = "\
         SELECT \
@@ -58,6 +69,8 @@ exports.list = function(req, res) {
             LIMIT 50 \
             OFFSET " + offset;
 
+    // console.log(query);
+
     req.db.query(query, parameters, function(result) {
 
         req.db.done();
-- 
GitLab