add a 'delete_recent' function to ActionRecord
[monitor.git] / monitor / database / info / action.py
index 0abec62..f324daa 100644 (file)
@@ -67,9 +67,9 @@ class BlacklistRecord(Entity):
                        return False
                else:
                        if self.date_created + timedelta(0,self.expires) > datetime.now():
-                               return True
-                       else:
                                return False
+                       else:
+                               return True
 
        def willExpire(self):
                if self.neverExpires():
@@ -83,7 +83,12 @@ class ActionRecord(Entity):
                # TODO: need to sort on 'round' since actions will not be globally sync'd.
                return cls.query.filter_by(**kwargs).order_by(ActionRecord.id.desc()).first()
 
-# ACCOUNTING
+       @classmethod
+       def delete_recent_by(cls, since, **kwargs):
+               acts = cls.query.filter_by(**kwargs).filter(cls.date_created >= datetime.now() - timedelta(since)).order_by(cls.date_created.desc())
+               for i in acts: i.delete()
+
+       # ACCOUNTING
        date_created = Field(DateTime,default=datetime.now)
        loginbase = Field(String,default=None)
        hostname = Field(String,default=None)