Completed
Pull Request — master (#30)
by
unknown
13:01
created

ValidationSummary.get_unknown_count()   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nop 1
1
#!/usr/bin/env python3
2
# -*- coding: utf-8 -*-
3
"""
4
Created on Mon Jan 28 11:09:02 2019
5
6
@author: Paolo Cozzi <[email protected]>
7
"""
8
9
from django.db import models
10
from django.contrib.postgres.fields import ArrayField
11
12
from image_app.models import Name
13
14
15
class ValidationResult(models.Model):
16
    name = models.OneToOneField(
17
        Name,
18
        on_delete=models.CASCADE)
19
20
    status = models.CharField(
21
            max_length=255,
22
            blank=False,
23
            null=True)
24
25
    messages = ArrayField(
26
        models.TextField(max_length=255, blank=True),
27
        default=list
28
    )
29
30
    def __str__(self):
31
        return "%s:%s" % (self.name, self.status)
32
33
34
class ValidationSummary(models.Model):
35
    submission = models.ForeignKey('image_app.Submission',
36
                                   on_delete=models.CASCADE)
37
38
    all_count = models.PositiveIntegerField(default=0)
39
    pass_count = models.PositiveIntegerField(default=0)
40
    warning_count = models.PositiveIntegerField(default=0)
41
    error_count = models.PositiveIntegerField(default=0)
42
    json_count = models.PositiveIntegerField(default=0)
43
    type = models.CharField(max_length=6, blank=True, null=True)
44
    messages = ArrayField(
45
        models.TextField(max_length=255, blank=True),
46
        default=list
47
    )
48
49
    # Returns number of all samples or animals in submission
50
    def get_all_count(self):
51
        return self.all_count
52
53
    # Returns number of samples or animals with unknown validation
54
    def get_unknown_count(self):
55
        return self.all_count - (self.pass_count + self.warning_count +
56
                                 self.error_count + self.json_count)
57
58
    # Returns number of samples or animals with issues in validation
59
    def get_issues_count(self):
60
        return self.error_count + self.json_count
61