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: Sun,  3 Jun 2012 13:19:34 +0000 (UTC)	[thread overview]
Message-ID: <1338727636.0d92c5b317de7af064dea7b14c0cce0b4b926430.bacher09@gentoo> (raw)

commit:     0d92c5b317de7af064dea7b14c0cce0b4b926430
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Sun Jun  3 12:47:16 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Sun Jun  3 12:47:16 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=0d92c5b3

Changes in models HerdsModel and MaintainerModel

---
 gpackages/apps/packages/managers.py |   24 +++++++++++++++++++
 gpackages/apps/packages/models.py   |   44 +++++++++++++++++++++++++++++++++-
 2 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/gpackages/apps/packages/managers.py b/gpackages/apps/packages/managers.py
index 464b6ce..f613df2 100644
--- a/gpackages/apps/packages/managers.py
+++ b/gpackages/apps/packages/managers.py
@@ -101,3 +101,27 @@ class EbuildMixin(object):
 EbuildQuerySet, EbuildManager =   _gen_query_and_manager(EbuildMixin,
                                                         'EbuildQuerySet',
                                                         'EbuildManager')
+
+class HerdsMixin(object):
+    def filter(self, *args, **kwargs):
+        if 'herd__in' in kwargs:
+            herds = kwargs['herd__in']
+            del kwargs['herd__in']
+            kwargs['name__in'] = herds
+        return super(HerdsMixin, self).filter(*args, **kwargs)
+
+HerdsQuerySet, HerdsManager = _gen_query_and_manager(HerdsMixin,
+                                                     'HerdsQuerySet',
+                                                     'HerdsManager')
+
+class MaintainerMixin(object):
+    def filter(self, *args, **kwargs):
+        if 'maintainer__in'  in kwargs:
+            maintars = kwargs['maintainer__in']
+            del kwargs['maintainer__in']
+            kwargs['email__in'] = maintars
+        return super(MaintainerMixin, self).filter(*args, **kwargs)
+
+MaintainerQuerySet, MaintainerManager = _gen_query_and_manager(MaintainerMixin,
+                                                     'MaintainerQuerySet',
+                                                     'MaintainerManager')

diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py
index e315c6b..2ad8faa 100644
--- a/gpackages/apps/packages/models.py
+++ b/gpackages/apps/packages/models.py
@@ -221,13 +221,53 @@ class Keyword(models.Model):
 
 
 class MaintainerModel(models.Model):
-    name = models.CharField( unique = True, max_length = 255)
-    email = models.EmailField()
+
+    def __init__(self, *args, **kwargs):
+        #TODO: Bad code, maybe use some libraries for overload methods
+        maintainer = None
+        if 'maintainer' in kwargs:
+            maintainer = kwargs['maintainer']
+            del kwargs['maintainer']
+        super(MaintainerModel, self).__init__(*args, **kwargs)
+        if maintainer is not None:
+            self.init_by_maintainer(maintainer)
+        
+    name = models.CharField(max_length = 255, blank = True, null = True)
+    email = models.EmailField(unique = True)
     role = models.TextField(blank = True, null = True)
 
+    objects = managers.MaintainerManager()
+
+    def init_by_maintainer(self, maintainer):
+        self.name = maintainer.name
+        self.email = maintainer.email
+        self.role = maintainer.role
+    
+    def __unicode__(self):
+        return ':'.join((unicode(self.name), self.email))
+
 class HerdsModel(models.Model):
+
+    def __init__(self, *args, **kwargs):
+        herd = None
+        if 'herd' in kwargs:
+            herd = kwargs['herd']
+            del kwargs['herd']
+        super(HerdsModel, self).__init__(*args, **kwargs)
+        if herd is not None:
+            self.init_by_herd(herd)
+
     name = models.CharField(unique = True, max_length = 150)
     email = models.EmailField()
     description = models.TextField(blank = True, null = True)
     maintainers = models.ManyToManyField(MaintainerModel, blank = True)
 
+    objects = managers.HerdsManager()
+
+    def init_by_herd(self, herd):
+        self.name = herd.name
+        self.email = herd.email
+        self.description = herd.description
+
+    def __unicode__(self):
+        return self.name



             reply	other threads:[~2012-06-03 13:20 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-03 13:19 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-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 20:32 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=1338727636.0d92c5b317de7af064dea7b14c0cce0b4b926430.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