- merge from HEAD
[plcapi.git] / PLC / Sites.py
index 4749f84..759e1d7 100644 (file)
@@ -101,6 +101,18 @@ class Site(Row):
     add_address = Row.add_object(Address, 'site_address')
     remove_address = Row.remove_object(Address, 'site_address')
 
+    def update_last_updated(self, commit = True):
+        """
+        Update last_updated field with current time
+        """
+
+        assert 'site_id' in self
+        assert self.table_name
+
+        self.api.db.do("UPDATE %s SET last_updated = CURRENT_TIMESTAMP " % (self.table_name) + \
+                       " where site_id = %d" % (self['site_id']) )
+        self.sync(commit)    
+
     def delete(self, commit = True):
         """
         Delete existing site.
@@ -174,5 +186,13 @@ class Sites(Table):
             elif isinstance(site_filter, dict):
                 site_filter = Filter(Site.fields, site_filter)
                 sql += " AND (%s)" % site_filter.sql(api, "AND")
+           elif isinstance (site_filter, StringTypes):
+                site_filter = Filter(Site.fields, {'login_base':[site_filter]})
+                sql += " AND (%s)" % site_filter.sql(api, "AND")
+            elif isinstance (site_filter, int):
+                site_filter = Filter(Site.fields, {'site_id':[site_filter]})
+                sql += " AND (%s)" % site_filter.sql(api, "AND")
+            else:
+                raise PLCInvalidArgument, "Wrong site filter %r"%site_filter
 
         self.selectall(sql)