Пример #1
0
class Severity(models.Model):
    """
    List of bug severities healthmeter understands.

    +--------------+----------+---------+---------+--------------+
    |Health Monitor|RHBugzilla|Launchpad|Debbugs  |GNOME Bugzilla|
    |Severity Level|          |         |         |              |
    +--------------+----------+---------+---------+--------------+
    |              |          |Wishlist |wishlist |Enhancement   |
    |              |          +---------+---------+--------------+
    |1             |Low       |         |         |Trivial       |
    |              |          |Low      |minor    +--------------+
    |              |          |         |         |Minor         |
    +--------------+----------+---------+---------+--------------+
    |2             |Medium    |Medium   |normal   |Normal        |
    +--------------+----------+---------+---------+--------------+
    |3             |High      |High     |important|Major         |
    +--------------+----------+---------+---------+--------------+
    |              |          |         |serious  |              |
    |              |          |         +---------+Critical      |
    |4             |Urgent    |Critical |grave    |              |
    |              |          |         +---------+--------------+
    |              |          |         |critical |Blocker       |
    +--------------+----------+---------+---------+--------------+
    """
    name = models.CharField(max_length=20, unique=True)
    level = models.IntegerField(unique=True)

    objects = get_natural_key_manager('level')

    def __str__(self):
        return self.name
Пример #2
0
class License(models.Model):
    name = models.TextField(unique=True)
    is_osi_approved = models.BooleanField()

    objects = get_natural_key_manager('name')

    def __str__(self):
        return self.name
Пример #3
0
class MetricAlgorithm(models.Model):
    name = models.CharField(max_length=50, unique=True)
    desc = models.CharField(max_length=300)

    objects = get_natural_key_manager('name')

    def __str__(self):
        return self.name
Пример #4
0
class Product(models.Model):
    name = models.CharField(max_length=255, unique=True)
    url = models.URLField(blank=True, default='')
    business_unit = models.ForeignKey(BusinessUnit, related_name='products')

    objects = get_natural_key_manager('name')

    def __str__(self):
        return self.name
Пример #5
0
class EmailDomain(models.Model):
    domain = models.CharField(max_length=255, unique=True)
    objects = managers.get_natural_key_manager('domain')

    class Meta:
        verbose_name = "Email Domain"
        ordering = ['domain']

    def __str__(self):
        return self.domain
Пример #6
0
class Blog(models.Model):
    rss_url = models.URLField(max_length=255, unique=True)
    url = models.URLField(max_length=255, default='')
    projects = TreeManyToManyField(Project, related_name='blogs', blank=True)

    last_updated = models.DateTimeField(blank=True, null=True, default=None)

    objects = get_natural_key_manager('rss_url')

    def __str__(self):
        return self.url
Пример #7
0
class BusinessUnit(models.Model):
    name = models.CharField(max_length=255, unique=True)

    objects = get_natural_key_manager('name')

    def __str__(self):
        return self.name

    @property
    def root_projects(self):
        return self.projects.filter(parent__isnull=True)
Пример #8
0
class Bug(models.Model):
    tracker_info = models.ForeignKey(BugNamespace, related_name='bugs')
    bug_id = models.CharField(max_length=20)
    close_date = models.DateTimeField(null=True)
    severity = models.ForeignKey(Severity, related_name='bugs', null=True)

    objects = get_natural_key_manager('tracker_info', 'bug_id')

    class Meta:
        unique_together = ('tracker_info', 'bug_id')

    def __str__(self):
        return 'Bug #%s on %s' % (self.bug_id, self.tracker_info)
Пример #9
0
class Post(models.Model):
    author = models.ForeignKey(Participant, related_name='mailing_list_posts')
    timestamp = models.DateTimeField(db_index=True)
    subject = models.TextField()
    message_id = models.CharField(max_length=255, unique=True)

    mailing_lists = models.ManyToManyField(MailingList, related_name='posts')
    references = models.ManyToManyField('self', related_name='replies')

    objects = get_natural_key_manager('message_id')

    def __str__(self):
        return self.message_id
Пример #10
0
class Comment(models.Model):
    bug = models.ForeignKey(Bug, related_name='comments')
    author = models.ForeignKey(Participant, related_name='bug_comments')

    timestamp = models.DateTimeField(db_index=True)
    comment_id = models.CharField(max_length=10)

    objects = get_natural_key_manager('bug', 'comment_id')

    def __str__(self):
        return 'Comment #%s on  %s' % (self.comment_id, self.bug)

    class Meta:
        unique_together = ('bug', 'comment_id')
Пример #11
0
class MailingList(models.Model):
    posting_address = models.EmailField(unique=True)
    archive_url = models.CharField(max_length=10000)
    last_updated = models.DateTimeField(blank=True, null=True, default=None)

    projects = TreeManyToManyField(Project,
                                   through='MailingListProject',
                                   related_name='mailing_lists',
                                   blank=True)

    objects = get_natural_key_manager('posting_address')

    def __str__(self):
        return self.posting_address
Пример #12
0
class BugTracker(models.Model):
    baseurl = models.URLField(max_length=255, unique=True)
    bt_type = models.ForeignKey(Type, related_name="types")

    username = models.CharField(max_length=255, null=True, blank=True)
    password = PlaintextPasswordField(max_length=255, null=True, blank=True)
    api_token = PlaintextPasswordField(max_length=255, null=True, blank=True)

    objects = get_natural_key_manager('baseurl')

    class Meta:
        verbose_name = "Bug Tracker"

    def __str__(self):
        return self.baseurl
Пример #13
0
class Release(models.Model):
    project = models.ForeignKey(Project, related_name='releases')
    version = models.CharField(max_length=100)
    date = models.DateField()

    objects = get_natural_key_manager('project', 'version')

    def __str__(self):
        return "{0} {1}{2}".format(self.project.name,
                                   '' if self.version.startswith('v') else 'v',
                                   self.version)

    class Meta:
        unique_together = ('project', 'version')
        ordering = ('date', 'version')
Пример #14
0
class MailingListProject(models.Model):
    mailing_list = models.ForeignKey(MailingList)
    project = TreeForeignKey(Project)

    purpose = models.ForeignKey(Purpose)

    objects = get_natural_key_manager('project', 'mailing_list')

    def __str__(self):
        return "%s (%s): %s" % (self.project.name, self.purpose.name,
                                self.mailing_list.posting_address)

    class Meta:
        verbose_name = "Mailing List-Project relationship"
        unique_together = ('project', 'mailing_list')
        ordering = ('project__name', )
Пример #15
0
class BugNamespace(models.Model):
    bug_tracker = models.ForeignKey(BugTracker, related_name='namespaces')

    product = models.CharField(max_length=100, null=True, blank=True)
    component = models.CharField(max_length=100, null=True, blank=True)

    last_updated = models.DateTimeField(blank=True, null=True, default=None)

    projects = TreeManyToManyField(Project,
                                   related_name='bug_trackers',
                                   blank=True)

    objects = get_natural_key_manager('product', 'component', 'bug_tracker')

    def __str__(self):
        return '(%s, %s) on %s' % (self.product, self.component,
                                   self.bug_tracker)

    class Meta:
        unique_together = ('product', 'component', 'bug_tracker')
        verbose_name = "Bug Namespace"
Пример #16
0
class Type(models.Model):
    name = models.CharField(max_length=10, unique=True)
    objects = get_natural_key_manager('name')

    def __str__(self):
        return self.name