diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-08-09 00:15:26 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-08-09 00:15:26 +0200 |
commit | bcacb3dcae815230c106cd773130f7b0ea5f720d (patch) | |
tree | 3dcb99ff067740d04689f7baa40a58b9289b98d9 /commcrawler/models.py | |
parent | 2d946cafdf247245bb58c41dbf4e8de699f950ba (diff) | |
download | Comm-on-net-bcacb3dcae815230c106cd773130f7b0ea5f720d.tar.bz2 Comm-on-net-bcacb3dcae815230c106cd773130f7b0ea5f720d.zip |
Display progress
Diffstat (limited to 'commcrawler/models.py')
-rw-r--r-- | commcrawler/models.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/commcrawler/models.py b/commcrawler/models.py index e715408..f526fb5 100644 --- a/commcrawler/models.py +++ b/commcrawler/models.py @@ -50,6 +50,17 @@ class Crawl(models.Model): def target_nb(self): return self.targets.count() + @property + def progress(self): + if self.status == "P": + todo = self.target_nb + if todo == 0: + return "-" + done = self.results.filter(status__in=("T", "F")).count() + percent = int(done / todo * 100) + return "{} % ({}/{})".format(percent, done, todo) + return "-" + class CrawlResult(models.Model): STATUS = ( @@ -57,7 +68,8 @@ class CrawlResult(models.Model): ('T', _("Time out")), ('F', _("Finished")) ) - crawl = models.ForeignKey(Crawl, verbose_name=_("Crawl")) + crawl = models.ForeignKey(Crawl, verbose_name=_("Crawl"), + related_name="results") target = models.ForeignKey(Target, verbose_name=_("Target")) started = models.DateTimeField( verbose_name=_("Start date"), default=datetime.datetime.now) |