diff options
Diffstat (limited to 'commcrawler/models.py')
-rw-r--r-- | commcrawler/models.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/commcrawler/models.py b/commcrawler/models.py index f526fb5..b520b09 100644 --- a/commcrawler/models.py +++ b/commcrawler/models.py @@ -23,20 +23,27 @@ class ExludedDomains(models.Model): class Crawl(models.Model): STATUS = ( - ('C', _("Created")), ('P', _("In progress")), + ('C', _("Created")), + ('A', _("Planned")), + ('P', _("Crawl in progress")), + ('M', _("Match link in progress")), ('F', _("Finished")) ) name = models.CharField(verbose_name=_("Name"), max_length=200, unique=True) created = models.DateTimeField( - verbose_name=_("Creation date"), default=datetime.datetime.now) + verbose_name=_("Creation"), default=datetime.datetime.now) started = models.DateTimeField( - verbose_name=_("Start date"), blank=True, null=True) + verbose_name=_("Started"), blank=True, null=True) + crawl_ended = models.DateTimeField( + verbose_name=_("Crawl end"), blank=True, null=True) ended = models.DateTimeField( - verbose_name=_("End date"), blank=True, null=True) + verbose_name=_("Ended"), blank=True, null=True) status = models.CharField( verbose_name=_("Status"), max_length=1, choices=STATUS, default='C') targets = models.ManyToManyField(Target, blank=True) + progression = models.IntegerField( + verbose_name=_("Progression"), blank=True, null=True) class Meta: verbose_name = _("Crawl") @@ -52,13 +59,17 @@ class Crawl(models.Model): @property def progress(self): + todo = self.target_nb + if todo == 0: + return "-" 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) + if self.status == "M": + done = self.progression or 0 + percent = int(done / todo * 100) + return "{} % ({}/{})".format(percent, done, todo) return "-" |