From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1SZ3Jv-00076r-Bo for garchives@archives.gentoo.org; Mon, 28 May 2012 17:01:27 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 6B1EEE0827; Mon, 28 May 2012 17:00:55 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 2B1E5E081B for ; Mon, 28 May 2012 17:00:54 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0E1FA1B406D for ; Mon, 28 May 2012 17:00:54 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id D49CAE5436 for ; Mon, 28 May 2012 17:00:51 +0000 (UTC) From: "Slava Bacherikov" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Slava Bacherikov" Message-ID: <1338221284.5982c7ecb766ab0c9ebfda896bfb1a8e77806074.bacher09@gentoo> Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/ X-VCS-Repository: proj/gentoo-packages X-VCS-Files: gpackages/apps/packages/models.py X-VCS-Directories: gpackages/apps/packages/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: 5982c7ecb766ab0c9ebfda896bfb1a8e77806074 X-VCS-Branch: master Date: Mon, 28 May 2012 17:00:51 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: a5e539a0-1f98-4a09-8696-bb6ae685cc75 X-Archives-Hash: c9cea0377d222d60e6d87b5fac356184 commit: 5982c7ecb766ab0c9ebfda896bfb1a8e77806074 Author: Slava Bacherikov bacher09 org> AuthorDate: Mon May 28 16:08:04 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Mon May 28 16:08:04 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoo-packag= es.git;a=3Dcommit;h=3D5982c7ec Changes in packages model --- gpackages/apps/packages/models.py | 37 +++++++++++++++++++++++++++++++= ------ 1 files changed, 31 insertions(+), 6 deletions(-) diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/= models.py index b620dcb..a60f6ce 100644 --- a/gpackages/apps/packages/models.py +++ b/gpackages/apps/packages/models.py @@ -1,6 +1,6 @@ from django.db import models =20 -from porttree import Category +from porttree import Category, Package =20 class ArchesModel(models.Model): name =3D models.CharField(max_length =3D 12) @@ -34,7 +34,23 @@ class CategoryModel(models.Model): =20 =20 class PackageModel(models.Model): - name =3D models.CharField(unique =3D True, max_length =3D 254) + def __init__(self, *args, **kwargs): + # TODO: Bad code, maybe use some library to overload method + if len(args)>=3D1: + package_object =3D args[0]=20 + =20 + if 'package' in kwargs: + package_object =3D kwargs['package'] + + if isinstance(package_object, Package): + super(PackageModel, self).__init__() + self.init_by_package(package_object) + else: + super(PackageModel, self).__init__(*args, **kwargs) + =20 + =20 + + name =3D models.CharField(max_length =3D 254) category =3D models.ForeignKey(CategoryModel) changelog =3D models.TextField(blank =3D True) changelog_hash =3D models.CharField(max_length =3D 128) @@ -43,10 +59,17 @@ class PackageModel(models.Model): def __unicode__(self): return '%s/%s' % (self.category, self.name) =20 - #@classmethod - #def create_by_pakcage(cls, package): - #category_object =3D CategoryModel.create_by_category(package.ca= tegory) - #package_model =3D c + def init_by_package(self, package): + self.name =3D package.name + self.update_info(package) + self.category, created =3D CategoryModel.objects.get_or_create(c= ategory =3D package.category) + + def update_info(self, package): + self.changelog_hash =3D package.changelog_sha1 + self.manifest_hash =3D package.manifest_sha1 + + class Meta: + unique_together =3D ('name', 'category') =20 class UseFlagModel(models.Model): name =3D models.CharField(unique =3D True, max_length =3D 28) @@ -92,3 +115,5 @@ class Keyword(models.Model): ebuild =3D models.ForeignKey(EbuildModel) arch =3D models.ForeignKey(ArchesModel) is_stable =3D models.BooleanField()=20 + class Meta: + unique_together =3D ('ebuild', 'arch')