public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Slava Bacherikov" <slava@bacherikov.org.ua>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/
Date: Mon, 28 May 2012 20:32:32 +0000 (UTC)	[thread overview]
Message-ID: <1338232193.3e640062498819c97b9bef24e8dbbc04f847177c.bacher09@gentoo> (raw)

commit:     3e640062498819c97b9bef24e8dbbc04f847177c
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Mon May 28 19:09:53 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Mon May 28 19:09:53 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=3e640062

Add init_by_ebuild method to EbuildModel

---
 gpackages/apps/packages/admin.py  |    3 +-
 gpackages/apps/packages/models.py |   49 +++++++++++++++++++++++++++----------
 2 files changed, 37 insertions(+), 15 deletions(-)

diff --git a/gpackages/apps/packages/admin.py b/gpackages/apps/packages/admin.py
index e61e613..9f76014 100644
--- a/gpackages/apps/packages/admin.py
+++ b/gpackages/apps/packages/admin.py
@@ -1,6 +1,6 @@
 from django.contrib import admin
 from models import EbuildModel, PackageModel, LicensModel, CategoryModel, \
-                   UseFlagModel, MetaDataModel, RepositoryModel
+                   UseFlagModel,  RepositoryModel
 
 admin.site.register(EbuildModel)
 admin.site.register(PackageModel)
@@ -8,4 +8,3 @@ admin.site.register(LicensModel)
 admin.site.register(CategoryModel)
 admin.site.register(UseFlagModel)
 admin.site.register(RepositoryModel)
-admin.site.register(MetaDataModel)

diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py
index e51f62f..8e50eea 100644
--- a/gpackages/apps/packages/models.py
+++ b/gpackages/apps/packages/models.py
@@ -81,23 +81,18 @@ class UseFlagModel(models.Model):
     description = models.TextField(blank = True)
 
 class LicensModel(models.Model):
-    name = models.CharField(max_length = 40)
+    name = models.CharField(unique = True, max_length = 40)
     #description = TextField()
     
     def __unicode__(self):
         return self.name
 
-class MetaDataModel(models.Model):
-    homepage = models.URLField()
-    description = models.TextField(blank = True, null = True)
-    # Some other info
 
 class EbuildModel(models.Model):
     package = models.ForeignKey(PackageModel)
-    repository = models.ForeignKey(RepositoryModel)
+    #repository = models.ForeignKey(RepositoryModel)
     version = models.CharField(max_length = 16)
     revision = models.CharField(max_length = 6)
-    metadata = models.ForeignKey(MetaDataModel)
     use_flags = models.ManyToManyField(UseFlagModel)
     licenses = models.ManyToManyField(LicensModel)
     license = models.CharField(max_length = 254, blank = True )
@@ -105,16 +100,44 @@ class EbuildModel(models.Model):
     ebuld_datetime = models.DateTimeField(auto_now = True)
     is_deleted = models.BooleanField(default = False)
     is_masked = models.BooleanField(default = False)
+
+    homepage = models.URLField()
+    description = models.TextField(blank = True, null = True)
     
     def __unicode__(self):
         return '%s-%s' % (self.package, self.version)
 
-    #@classmethod
-    #def create_by_ebuild(cls, ebuild):
-        #ebuild_model = cls()
-        #ebuild_model.is_masked = ebuild.is_masked
-        #ebuild_model.version = ebuild.version
-        #ebuild_model.revision = ebuild.revision
+    def init_by_ebuild(self, ebuild):
+        self.is_masked = ebuild.is_masked
+        self.version = ebuild.version
+        self.revision = ebuild.revision
+        self.license = ebuild.license
+        self.ebuild_hash = ebuild.sha1
+        self.homepage = ebuild.homepage
+        self.description = ebuild.description
+        self.package = PackageModel.objects.get_or_create(package = ebuild.package)[0]
+        self.save()
+        l = []
+        for license in ebuild.licenses:
+            k, created = LicensModel.objects.get_or_create(name = license)
+            if created:
+                k.save()
+            l.append(k)
+        
+        self.licenses.add(*l)
+        l = []
+        # TODO: Bad code
+        for use in ebuild.iter_uses():
+            k, created = UseFlagModel.objects.get_or_create(name = use)
+            if created:
+                k.save()
+            l.append(k)
+        self.use_flags.add(*l)
+    
+    class Meta:
+        unique_together = ('package', 'version', 'revision')
+        
+            
 
 class Keyword(models.Model):
     ebuild = models.ForeignKey(EbuildModel)



             reply	other threads:[~2012-05-28 20:32 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-28 20:32 Slava Bacherikov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-09-23 19:35 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/ Slava Bacherikov
2012-09-13 22:17 Slava Bacherikov
2012-08-26 23:00 Slava Bacherikov
2012-08-20 13:03 Slava Bacherikov
2012-08-20 13:03 Slava Bacherikov
2012-08-11 22:30 Slava Bacherikov
2012-08-11 22:30 Slava Bacherikov
2012-08-07  0:10 Slava Bacherikov
2012-07-31 23:20 Slava Bacherikov
2012-07-30 23:30 Slava Bacherikov
2012-07-30 12:59 Slava Bacherikov
2012-07-25 22:47 Slava Bacherikov
2012-07-25 22:47 Slava Bacherikov
2012-07-22 23:46 Slava Bacherikov
2012-07-19 23:50 Slava Bacherikov
2012-07-19 23:50 Slava Bacherikov
2012-07-18 23:20 Slava Bacherikov
2012-07-18 23:20 Slava Bacherikov
2012-07-15 23:08 Slava Bacherikov
2012-07-15 23:08 Slava Bacherikov
2012-07-12 22:16 Slava Bacherikov
2012-07-08 19:54 Slava Bacherikov
2012-07-05 23:27 Slava Bacherikov
2012-07-04 22:13 Slava Bacherikov
2012-07-03 21:08 Slava Bacherikov
2012-07-02 22:25 Slava Bacherikov
2012-06-29 17:29 Slava Bacherikov
2012-06-29 17:29 Slava Bacherikov
2012-06-28 23:59 Slava Bacherikov
2012-06-28 23:59 Slava Bacherikov
2012-06-27 22:52 Slava Bacherikov
2012-06-25 22:23 Slava Bacherikov
2012-06-24 23:21 Slava Bacherikov
2012-06-20 23:23 Slava Bacherikov
2012-06-20 23:23 Slava Bacherikov
2012-06-20 23:23 Slava Bacherikov
2012-06-13 22:15 Slava Bacherikov
2012-06-12 18:34 Slava Bacherikov
2012-06-10 22:56 Slava Bacherikov
2012-06-10 17:51 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-07 22:48 Slava Bacherikov
2012-06-07 18:37 Slava Bacherikov
2012-06-07 18:37 Slava Bacherikov
2012-06-07 18:37 Slava Bacherikov
2012-06-07 18:37 Slava Bacherikov
2012-06-07 11:27 Slava Bacherikov
2012-06-06 22:48 Slava Bacherikov
2012-06-05 20:48 Slava Bacherikov
2012-06-05 20:48 Slava Bacherikov
2012-06-05 20:48 Slava Bacherikov
2012-06-05 15:49 Slava Bacherikov
2012-06-05 15:49 Slava Bacherikov
2012-06-03 16:19 Slava Bacherikov
2012-06-03 13:19 Slava Bacherikov
2012-05-31 13:34 Slava Bacherikov
2012-05-29 21:34 Slava Bacherikov
2012-05-29 13:38 Slava Bacherikov
2012-05-29 12:24 Slava Bacherikov
2012-05-29 12:24 Slava Bacherikov
2012-05-29 12:24 Slava Bacherikov
2012-05-28 17:00 Slava Bacherikov
2012-05-28 17:00 Slava Bacherikov
2012-05-28 17:00 Slava Bacherikov
2012-05-28 10:39 Slava Bacherikov
2012-05-28 10:39 Slava Bacherikov
2012-05-27 22:48 Slava Bacherikov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1338232193.3e640062498819c97b9bef24e8dbbc04f847177c.bacher09@gentoo \
    --to=slava@bacherikov.org.ua \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox