From 6fa6a8db0787fa40fa1c88b725b0bce184903c4c Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 22 Apr 2013 10:50:03 -0500 Subject: Use required_signoffs value when creating signoff specs And respect it elsewhere when we create a fake default specification because a real one does not exist yet. Signed-off-by: Dan McGee --- packages/management/commands/populate_signoffs.py | 6 ++++-- packages/models.py | 12 +++++++++--- packages/utils.py | 4 ++-- templates/packages/signoffs.html | 2 +- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/management/commands/populate_signoffs.py b/packages/management/commands/populate_signoffs.py index 97ba414..a9c1c81 100644 --- a/packages/management/commands/populate_signoffs.py +++ b/packages/management/commands/populate_signoffs.py @@ -29,7 +29,8 @@ logging.basicConfig( logger = logging.getLogger() class Command(NoArgsCommand): - help = "Pull the latest commit message from SVN for a given package that is signoff-eligible and does not have an existing comment attached" + help = """Pull the latest commit message from SVN for a given package that +is signoff-eligible and does not have an existing comment attached""" def handle_noargs(self, **options): v = int(options.get('verbosity', None)) @@ -74,10 +75,11 @@ cached_svn_log.cache = {} def create_specification(package, log, finder): trimmed_message = log['message'].strip() + required = package.arch.required_signoffs spec = SignoffSpecification(pkgbase=package.pkgbase, pkgver=package.pkgver, pkgrel=package.pkgrel, epoch=package.epoch, arch=package.arch, repo=package.repo, - comments=trimmed_message) + comments=trimmed_message, required=required) spec.user = finder.find_by_username(log['author']) return spec diff --git a/packages/models.py b/packages/models.py index f830aad..6477d41 100644 --- a/packages/models.py +++ b/packages/models.py @@ -60,7 +60,8 @@ class SignoffSpecificationManager(models.Manager): pkgbase=pkg.pkgbase, pkgver=pkg.pkgver, pkgrel=pkg.pkgrel, epoch=pkg.epoch, arch=pkg.arch, repo=pkg.repo) except SignoffSpecification.DoesNotExist: - return DEFAULT_SIGNOFF_SPEC + return fake_signoff_spec(pkg.arch) + class SignoffSpecification(models.Model): ''' @@ -97,10 +98,15 @@ class SignoffSpecification(models.Model): return u'%s-%s' % (self.pkgbase, self.full_version) -# fake default signoff spec when we don't have a persisted one in the database +# Fake signoff specs for when we don't have persisted ones in the database. +# These have all necessary attributes of the real thing but are lighter weight +# and have no chance of being persisted. FakeSignoffSpecification = namedtuple('FakeSignoffSpecification', ('required', 'enabled', 'known_bad', 'comments')) -DEFAULT_SIGNOFF_SPEC = FakeSignoffSpecification(2, True, False, u'') + + +def fake_signoff_spec(arch): + return FakeSignoffSpecification(arch.required_signoffs, True, False, u'') class SignoffManager(models.Manager): diff --git a/packages/utils.py b/packages/utils.py index 4f3b866..b8d1504 100644 --- a/packages/utils.py +++ b/packages/utils.py @@ -14,7 +14,7 @@ from main.utils import (database_vendor, groupby_preserve_order, PackageStandin) from .models import (PackageGroup, PackageRelation, License, Depend, Conflict, Provision, Replacement, - SignoffSpecification, Signoff, DEFAULT_SIGNOFF_SPEC) + SignoffSpecification, Signoff, fake_signoff_spec) VERSION_RE = re.compile(r'^((\d+):)?(.+)-([^-]+)$') @@ -297,7 +297,6 @@ class PackageSignoffGroup(object): self.user = None self.target_repo = None self.signoffs = set() - self.specification = DEFAULT_SIGNOFF_SPEC self.default_spec = True first = packages[0] @@ -308,6 +307,7 @@ class PackageSignoffGroup(object): self.last_update = first.last_update self.packager = first.packager self.maintainers = first.maintainers + self.specification = fake_signoff_spec(first.arch) version = first.full_version if all(version == pkg.full_version for pkg in packages): diff --git a/templates/packages/signoffs.html b/templates/packages/signoffs.html index 6fbbd00..807b613 100644 --- a/templates/packages/signoffs.html +++ b/templates/packages/signoffs.html @@ -68,7 +68,7 @@ {% endif %} {% include "packages/signoff_cell.html" %} {% if not group.default_spec %}{% with group.specification as spec %}{% comment %} - {% endcomment %}{% if spec.required != 2 %}Required signoffs: {{ spec.required }}
{% endif %}{% comment %} + {% endcomment %}{% if spec.required != spec.arch.required_signoffs %}Required signoffs: {{ spec.required }}
{% endif %}{% comment %} {% endcomment %}{% if not spec.enabled %}Signoffs are not currently enabled
{% endif %}{% comment %} {% endcomment %}{% if spec.known_bad %}Package is known to be bad
{% endif %}{% comment %} {% endcomment %}{{ spec.comments|default:""|linebreaksbr }} -- cgit v1.2.3-24-g4f1b