fix bugs
[plcapi.git] / PLC / Sites.py
index c66d38f..07cd634 100644 (file)
@@ -158,8 +158,10 @@ class Sites(list):
         elif isinstance(site_filter, dict):
             sites = Site().select(filter=site_filter)
         elif isinstance(site_filter, (list, tuple, set)):
-            sites = Site().select() 
-            sites = [site for site in sites if site.id in site_filter]
+            ints = filter(lambda x: isinstance(x, (int, long)), site_filter)
+            strs = filter(lambda x: isinstance(x, StringTypes), site_filter)
+            site_filter = {'site_id': ints, 'login_base': strs}
+            sites = Site().select(filter=site_filter)
         else:
             raise PLCInvalidArgument, "Wrong site filter %s" % site_filter