summaryrefslogtreecommitdiff
path: root/commcrawler/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'commcrawler/models.py')
-rw-r--r--commcrawler/models.py25
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 "-"