Simplify code now that pkgbase is always defined

This allows some of our queries to get a lot simpler as well as removing the
pkgbase_safe property added earlier.

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2010-03-27 16:58:02 -05:00
parent e317cf560a
commit 1113462edc
3 changed files with 7 additions and 13 deletions

View File

@ -23,7 +23,7 @@ def index(request):
'''the Developer dashboard'''
inner_q = PackageRelation.objects.filter(user=request.user).values('pkgbase')
packages = Package.objects.select_related('arch', 'repo').filter(needupdate=True)
packages = packages.filter(Q(pkgname__in=inner_q) | Q(pkgbase__in=inner_q))
packages = packages.filter(pkgbase__in=inner_q)
page_dict = {
'todos': Todolist.objects.incomplete(),

View File

@ -203,16 +203,10 @@ def get_absolute_url(self):
return '/packages/%s/%s/%s/' % (self.repo.name.lower(),
self.arch.name, self.pkgname)
@property
def pkgbase_safe(self):
if self.pkgbase:
return self.pkgbase
return self.pkgname
@property
def maintainers(self):
return User.objects.filter(
package_relations__pkgbase=self.pkgbase_safe,
package_relations__pkgbase=self.pkgbase,
package_relations__type=PackageRelation.MAINTAINER)
@property
@ -283,7 +277,7 @@ def get_svn_link(self, svnpath):
root = 'community'
else:
root = 'packages'
return linkbase % (root, self.pkgbase_safe, svnpath)
return linkbase % (root, self.pkgbase, svnpath)
def get_arch_svn_link(self):
repo = self.repo.name.lower()

View File

@ -48,12 +48,12 @@ def update(request):
for pkg in pkgs:
maints = pkg.maintainers
if mode == 'adopt' and request.user not in maints:
pr = PackageRelation(pkgbase=pkg.pkgbase_safe,
pr = PackageRelation(pkgbase=pkg.pkgbase,
user=request.user,
type=PackageRelation.MAINTAINER)
pr.save()
elif mode == 'disown' and request.user in maints:
rels = PackageRelation.objects.filter(pkgbase=pkg.pkgbase_safe,
rels = PackageRelation.objects.filter(pkgbase=pkg.pkgbase,
user=request.user)
rels.delete()
@ -148,10 +148,10 @@ def search(request, page=None):
if form.cleaned_data['maintainer'] == 'orphan':
inner_q = PackageRelation.objects.all().values('pkgbase')
packages = packages.exclude(Q(pkgname__in=inner_q) | Q(pkgbase__in=inner_q))
packages = packages.exclude(pkgbase__in=inner_q)
elif form.cleaned_data['maintainer']:
inner_q = PackageRelation.objects.filter(user__username=form.cleaned_data['maintainer']).values('pkgbase')
packages = packages.filter(Q(pkgname__in=inner_q) | Q(pkgbase__in=inner_q))
packages = packages.filter(pkgbase__in=inner_q)
if form.cleaned_data['flagged'] == 'Flagged':
packages=packages.filter(needupdate=True)