From 4d1977f24e062370efd307cbe51d4cd826828362 Mon Sep 17 00:00:00 2001 From: eliott Date: Sat, 8 Mar 2008 10:52:03 -0800 Subject: Added/fixed package depends urlize logic --- main/models.py | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) (limited to 'main') diff --git a/main/models.py b/main/models.py index 601e3ae0..1a6423c3 100644 --- a/main/models.py +++ b/main/models.py @@ -163,8 +163,7 @@ class Package(models.Model): pkgrel = models.CharField(maxlength=255) pkgdesc = models.CharField(maxlength=255) url = models.URLField() - sources = models.TextField() - depends = models.TextField() + depends = models.ForeignKey(PackageDepends) last_update = models.DateTimeField(null=True, blank=True) objects = PackageManager() class Meta: @@ -175,29 +174,18 @@ class Package(models.Model): return '/packages/%i/' % self.id def depends_urlize(self): - urls = '' - for dep in self.depends.split(' '): - # shave off any version qualifiers - nameonly = re.match(r"([a-z0-9-]+)", dep).group(1) + urls = [] + for dep in self.packagedepends_set.all(): try: - p = Package.objects.filter(pkgname=nameonly)[0] + p = Package.objects.filter(pkgname=dep.depname) except IndexError: - # couldn't find a package in the DB -- it might be a virtual depend - urls = urls + '
  • ' + dep + '
  • ' + # couldn't find a package in the DB + # it might be a virtual depend + urls.append('
  • %s
  • ' % dep.depname) continue - url = '
  • ' + dep + '
  • ' - urls = urls + url - return urls - - def sources_urlize(self): - urls = '' - for source in self.sources.split(' '): - if re.search('://', source): - url = '
  • ' + source + '
  • ' - else: - url = '
  • ' + source + '
  • ' - urls = urls + url - return urls + urls.append( + '
  • %s
  • ' % (p.id,dep.depname)) + return ''.join(urls) class PackageFile(models.Model): id = models.AutoField(primary_key=True) -- cgit v1.2.3-2-g168b