summaryrefslogtreecommitdiff
path: root/main/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'main/models.py')
-rw-r--r--main/models.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/main/models.py b/main/models.py
index 9ab4b4ad..166fd9a9 100644
--- a/main/models.py
+++ b/main/models.py
@@ -18,6 +18,7 @@ class TodolistManager(models.Manager):
def incomplete(self):
return self.filter(todolistpkg__complete=False).order_by().distinct()
+
class PackageManager(models.Manager):
def flagged(self):
"""Used by dev dashboard."""
@@ -32,6 +33,7 @@ class PackageManager(models.Manager):
return qs
return qs.filter(repo__staging=False)
+
class Donor(models.Model):
name = models.CharField(max_length=255, unique=True)
visible = models.BooleanField(default=True,
@@ -46,6 +48,7 @@ class Donor(models.Model):
ordering = ('name',)
get_latest_by = 'when'
+
class Arch(models.Model):
name = models.CharField(max_length=255, unique=True)
agnostic = models.BooleanField(default=False,
@@ -62,6 +65,7 @@ class Arch(models.Model):
ordering = ['name']
verbose_name_plural = 'arches'
+
class Repo(models.Model):
name = models.CharField(max_length=255, unique=True)
testing = models.BooleanField(default=False,
@@ -86,6 +90,7 @@ class Repo(models.Model):
ordering = ['name']
verbose_name_plural = 'repos'
+
class Package(models.Model):
repo = models.ForeignKey(Repo, related_name="packages",
on_delete=models.PROTECT)
@@ -409,6 +414,7 @@ class Package(models.Model):
pkgname__in=names).exclude(id=self.id).order_by(
'arch__name', 'repo__name')
+
class PackageFile(models.Model):
pkg = models.ForeignKey(Package)
is_directory = models.BooleanField(default=False)
@@ -461,6 +467,7 @@ class Todolist(models.Model):
domain = Site.objects.get_current().domain
return '%s://%s%s' % (proto, domain, self.get_absolute_url())
+
class TodolistPkg(models.Model):
list = models.ForeignKey(Todolist)
pkg = models.ForeignKey(Package)
@@ -470,11 +477,13 @@ class TodolistPkg(models.Model):
db_table = 'todolist_pkgs'
unique_together = (('list','pkg'),)
+
def set_todolist_fields(sender, **kwargs):
todolist = kwargs['instance']
if not todolist.date_added:
todolist.date_added = now()
+
# connect signals needed to keep cache in line with reality
from main.utils import refresh_latest
from django.db.models.signals import pre_save, post_save