summaryrefslogtreecommitdiff
path: root/patchtracker/models.py
blob: 0fb997dd71b7373c8b03138cf87837e7bfb844ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from django.db import models
from django.contrib import admin

class SourcePackage (models.Model):
  name = models.CharField(max_length=1024)
  version = models.CharField(max_length=1024)
  format = models.CharField(max_length=64)
  loc = models.CharField(max_length=4096)
  diffgz_name = models.CharField(max_length=4096, null=True, blank=True)
  diffgz_size = models.IntegerField(null=True, blank=True)
  diffgz_md5sum = models.CharField(max_length=32, null=True, blank=True)
  debtar_name = models.CharField(max_length=4096, null=True, blank=True)
  debtar_size = models.IntegerField(null=True, blank=True)
  debtar_md5sum = models.CharField(max_length=32, null=True, blank=True)
  maintainer = models.CharField(max_length=1024)
  uploaders = models.CharField(max_length=4096, null=True, blank=True)

  def type( self ):
    """ Source package "type".  Not incredibly useful, i guess... """
    if self.diffgz_name or self.debtar_name:
      return "Debian-diff"
    else:
      return "Native"

  def __unicode__( self ):
    return "%s (%s)"%(self.name, self.version)

  class Meta:
    managed = False
    db_table = 'packages'
    unique_together = (('name','version'),)

class RepositorySuite (models.Model):
  name = models.CharField(max_length=1024, unique=True)

  def __unicode__( self ):
    return unicode(self.name)

  class Meta:
    managed = False
    db_table = 'suites'

class RepositoryComponent (models.Model):
  name = models.CharField(max_length=1024, unique=True)

  def __unicode__( self ):
    return unicode(self.name)

  class Meta:
    managed = False
    db_table = 'components'

class SourcePackageMapping (models.Model):
  rowid = models.AutoField(primary_key=True)
  package = models.ForeignKey(SourcePackage)
  suite = models.ForeignKey(RepositorySuite)
  component = models.ForeignKey(RepositoryComponent)

  def __unicode__( self ):
    return "%s / %s / %s"%(unicode(self.package),unicode(self.suite),unicode(self.component))

  class Meta:
    managed = False
    db_table = 'package_rel_map'
    unique_together = (('package','suite','component'),)

admin.site.register(SourcePackage)
admin.site.register(RepositorySuite)
admin.site.register(RepositoryComponent)
admin.site.register(SourcePackageMapping)