Passed
Push — master ( 62d7d9...8230b1 )
by Alexander
03:29
created

tcms.bugs.models   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 29
dl 0
loc 43
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A Bug.__str__() 0 2 1
A Bug._get_absolute_url() 0 2 1
A Bug.get_absolute_url() 0 2 1
1
# Copyright (c) 2019 Alexander Todorov <[email protected]>
2
3
# Licensed under the GPL 2.0: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
4
5
from django.db import models
6
from django.conf import settings
7
from django.urls import reverse
8
9
from tcms.core.models.base import UrlMixin
10
11
12
class Bug(models.Model, UrlMixin):
13
    summary = models.CharField(max_length=255, db_index=True)
14
    created_at = models.DateTimeField(auto_now_add=True,
15
                                      db_index=True)
16
    # True means bug is still open
17
    status = models.BooleanField(default=True, db_index=True)
18
19
    reporter = models.ForeignKey(settings.AUTH_USER_MODEL,
20
                                 on_delete=models.CASCADE,
21
                                 related_name='repoted_bugs')
22
    assignee = models.ForeignKey(settings.AUTH_USER_MODEL,
23
                                 on_delete=models.CASCADE,
24
                                 related_name='assigned_bugs',
25
                                 null=True,
26
                                 blank=True)
27
28
    product = models.ForeignKey('management.Product', on_delete=models.CASCADE)
29
    version = models.ForeignKey('management.Version', on_delete=models.CASCADE)
30
    build = models.ForeignKey('management.Build', on_delete=models.CASCADE)
31
32
    executions = models.ManyToManyField('testruns.TestExecution', related_name='bugs')
33
    tags = models.ManyToManyField('management.Tag', related_name='bugs')
34
35
    def __str__(self):
36
        return "BUG-%d: %s " % (self.pk, self.summary)
37
38
    def _get_absolute_url(self):
39
        return reverse('bugs-get', args=[self.pk, ])
40
41
    def get_absolute_url(self):
42
        return self._get_absolute_url()
43