From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 90FC11381FD for ; Wed, 25 Jul 2012 22:48:05 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 8692BE0511; Wed, 25 Jul 2012 22:47:52 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 2DBF4E0511 for ; Wed, 25 Jul 2012 22:47:51 +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 3AA3E1B479D for ; Wed, 25 Jul 2012 22:47:51 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id C693DE5442 for ; Wed, 25 Jul 2012 22:47:48 +0000 (UTC) From: "Slava Bacherikov" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Slava Bacherikov" Message-ID: <1343229116.6bac3459fed56db3904fc08e8c892a93fcbb0b21.bacher09@gentoo> Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/migrations/, gpackages/apps/packages/ X-VCS-Repository: proj/gentoo-packages X-VCS-Files: gpackages/apps/packages/migrations/0004_add_base_upstream.py gpackages/apps/packages/models.py X-VCS-Directories: gpackages/apps/packages/migrations/ gpackages/apps/packages/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: 6bac3459fed56db3904fc08e8c892a93fcbb0b21 X-VCS-Branch: master Date: Wed, 25 Jul 2012 22:47:48 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 28217c0e-082d-436f-b3cb-a9d7ee66879d X-Archives-Hash: 8a954c13404edf2a37466a7c80e33896 commit: 6bac3459fed56db3904fc08e8c892a93fcbb0b21 Author: Slava Bacherikov bacher09 org> AuthorDate: Wed Jul 25 15:11:56 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Wed Jul 25 15:11:56 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=6bac3459 Add base upstream fields --- .../packages/migrations/0004_add_base_upstream.py | 220 ++++++++++++++++++++ gpackages/apps/packages/models.py | 11 + 2 files changed, 231 insertions(+), 0 deletions(-) diff --git a/gpackages/apps/packages/migrations/0004_add_base_upstream.py b/gpackages/apps/packages/migrations/0004_add_base_upstream.py new file mode 100644 index 0000000..7b09e97 --- /dev/null +++ b/gpackages/apps/packages/migrations/0004_add_base_upstream.py @@ -0,0 +1,220 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'PackageModel.doc' + db.add_column('packages_packagemodel', 'doc', + self.gf('django.db.models.fields.URLField')(max_length=200, null=True, blank=True), + keep_default=False) + + # Adding field 'PackageModel.changelog_url' + db.add_column('packages_packagemodel', 'changelog_url', + self.gf('django.db.models.fields.URLField')(max_length=200, null=True, blank=True), + keep_default=False) + + # Adding field 'PackageModel.bugs_to' + db.add_column('packages_packagemodel', 'bugs_to', + self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'PackageModel.doc' + db.delete_column('packages_packagemodel', 'doc') + + # Deleting field 'PackageModel.changelog_url' + db.delete_column('packages_packagemodel', 'changelog_url') + + # Deleting field 'PackageModel.bugs_to' + db.delete_column('packages_packagemodel', 'bugs_to') + + + models = { + 'packages.archesmodel': { + 'Meta': {'object_name': 'ArchesModel'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '22', 'db_index': 'True'}) + }, + 'packages.categorymodel': { + 'Meta': {'object_name': 'CategoryModel'}, + 'category': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '70', 'db_index': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'ebuilds_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'metadata_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), + 'packages_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'repositories_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'virtual_packages_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}) + }, + 'packages.ebuildmodel': { + 'Meta': {'ordering': "('-updated_datetime',)", 'unique_together': "(('package', 'version', 'revision'),)", 'object_name': 'EbuildModel'}, + 'created_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'eapi': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}), + 'ebuild_hash': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'ebuild_mtime': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'homepages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['packages.HomepageModel']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_hard_masked': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'license': ('django.db.models.fields.CharField', [], {'max_length': '254', 'blank': 'True'}), + 'licenses': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['packages.LicenseModel']", 'symmetrical': 'False'}), + 'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.PackageModel']"}), + 'revision': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), + 'slot': ('django.db.models.fields.CharField', [], {'default': "'0'", 'max_length': '32', 'null': 'True', 'db_index': 'True'}), + 'updated_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'use_flags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['packages.UseFlagModel']", 'symmetrical': 'False'}), + 'version': ('django.db.models.fields.CharField', [], {'max_length': '26', 'db_index': 'True'}) + }, + 'packages.herdsmodel': { + 'Meta': {'ordering': "('name',)", 'object_name': 'HerdsModel'}, + 'created_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'ebuilds_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['packages.MaintainerModel']", 'symmetrical': 'False', 'blank': 'True'}), + 'maintainers_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '150', 'db_index': 'True'}), + 'packages_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'repositories_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'updated_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + 'packages.homepagemodel': { + 'Meta': {'object_name': 'HomepageModel'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'url': ('django.db.models.fields.URLField', [], {'unique': 'True', 'max_length': '255'}) + }, + 'packages.keyword': { + 'Meta': {'unique_together': "(('ebuild', 'arch'),)", 'object_name': 'Keyword'}, + 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.ArchesModel']"}), + 'ebuild': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.EbuildModel']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'status': ('django.db.models.fields.PositiveSmallIntegerField', [], {}) + }, + 'packages.licensegroupmodel': { + 'Meta': {'ordering': "('name',)", 'object_name': 'LicenseGroupModel'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'licenses': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['packages.LicenseModel']", 'symmetrical': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '60', 'db_index': 'True'}) + }, + 'packages.licensemodel': { + 'Meta': {'object_name': 'LicenseModel'}, + 'ebuilds_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '60', 'db_index': 'True'}), + 'text': ('django.db.models.fields.TextField', [], {'null': 'True'}) + }, + 'packages.maintainermodel': { + 'Meta': {'ordering': "('name',)", 'object_name': 'MaintainerModel'}, + 'created_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'ebuilds_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'db_index': 'True'}), + 'herds_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'news_author_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'news_translator_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'packages_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'repositories_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'updated_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + 'packages.packagemodel': { + 'Meta': {'ordering': "('-updated_datetime',)", 'unique_together': "(('virtual_package', 'repository'),)", 'object_name': 'PackageModel'}, + 'bugs_to': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'changelog': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'changelog_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), + 'changelog_mtime': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'changelog_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'created_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'doc': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'ebuilds_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'herds': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['packages.HerdsModel']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'latest_ebuild': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.EbuildModel']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['packages.MaintainerModel']", 'symmetrical': 'False', 'blank': 'True'}), + 'manifest_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), + 'manifest_mtime': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'metadata_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), + 'mtime': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'repository': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.RepositoryModel']"}), + 'updated_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'virtual_package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.VirtualPackageModel']"}) + }, + 'packages.portagenewsmodel': { + 'Meta': {'ordering': "('-date',)", 'unique_together': "(('name', 'lang'),)", 'object_name': 'PortageNewsModel'}, + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'author_news_set'", 'symmetrical': 'False', 'to': "orm['packages.MaintainerModel']"}), + 'created_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date': ('django.db.models.fields.DateField', [], {}), + 'hash': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lang': ('django.db.models.fields.CharField', [], {'max_length': '5', 'db_index': 'True'}), + 'message': ('django.db.models.fields.TextField', [], {}), + 'message_as_html': ('django.db.models.fields.TextField', [], {}), + 'name': ('django.db.models.fields.SlugField', [], {'max_length': '200'}), + 'revision': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'translators': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'translator_news_set'", 'symmetrical': 'False', 'to': "orm['packages.MaintainerModel']"}), + 'updated_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + 'packages.repositoryfeedmodel': { + 'Meta': {'unique_together': "(('repository', 'feed'),)", 'object_name': 'RepositoryFeedModel'}, + 'feed': ('django.db.models.fields.URLField', [], {'max_length': '200'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'repository': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.RepositoryModel']"}) + }, + 'packages.repositorymodel': { + 'Meta': {'object_name': 'RepositoryModel'}, + 'categories_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'ebuilds_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'maintainers_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '60', 'db_index': 'True'}), + 'official': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'owner_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'owner_name': ('django.db.models.fields.CharField', [], {'max_length': '65', 'null': 'True', 'blank': 'True'}), + 'packages_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'quality': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), + 'updated_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + 'packages.repositorysourcemodel': { + 'Meta': {'object_name': 'RepositorySourceModel'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'repo_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), + 'repository': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.RepositoryModel']"}), + 'subpath': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'packages.useflagdescriptionmodel': { + 'Meta': {'unique_together': "(('use_flag', 'package'),)", 'object_name': 'UseFlagDescriptionModel'}, + 'description': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'package': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.VirtualPackageModel']"}), + 'use_flag': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.UseFlagModel']"}) + }, + 'packages.useflagmodel': { + 'Meta': {'ordering': "('name',)", 'object_name': 'UseFlagModel'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'ebuilds_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '60', 'db_index': 'True'}) + }, + 'packages.virtualpackagemodel': { + 'Meta': {'unique_together': "(('name', 'category'),)", 'object_name': 'VirtualPackageModel'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['packages.CategoryModel']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '254', 'db_index': 'True'}) + } + } + + complete_apps = ['packages'] \ No newline at end of file diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py index ece1bef..fe3c3e0 100644 --- a/gpackages/apps/packages/models.py +++ b/gpackages/apps/packages/models.py @@ -412,8 +412,14 @@ class PackageModel(StatsModel, AbstractDateTimeModel): manifest_mtime = models.DateTimeField(blank = True, null = True) mtime = models.DateTimeField(blank = True, null = True) + # data from metadata.xml herds = models.ManyToManyField(HerdsModel, blank = True) maintainers = models.ManyToManyField(MaintainerModel, blank = True) + #upstream + doc = models.URLField(blank = True, null = True) + changelog_url = models.URLField(blank = True, null = True) + # TODO: IN future this should done by special field type + bugs_to = models.CharField(max_length = 255, blank = True, null = True) description = models.TextField(blank = True, null = True) repository = models.ForeignKey(RepositoryModel, db_index = True) @@ -484,6 +490,11 @@ class PackageModel(StatsModel, AbstractDateTimeModel): self.manifest_hash = package.manifest_sha1 self.metadata_hash = package.metadata_sha1 self.description = package.description + # metadata.xml + if package.metadata.upstream is not None: + self.doc = package.metadata.upstream.main_doc + self.changelog_url = package.metadata.upstream.changelog + self.bugs_to = package.metadata.upstream.bugs_to def get_ebuilds_and_keywords(self, arch_list): l = []