[Toaster] [review-request] toaster: Remove circular dependecies from packages/recipes

Damian, Alexandru alexandru.damian at intel.com
Thu Mar 20 08:53:15 PDT 2014


Taken in.

Alex


On Wed, Mar 19, 2014 at 12:24 PM, Irina Patru <irina.patru at intel.com> wrote:

> The RelatedManager for Package_Dependency and Recipe_Dependency is changed
> so that circular dependacies are hidden in the UI, but will still remain in
> the database.
>
> [YOCTO #5655]
>
> Signed-off-by: Irina Patru <irina.patru at intel.com>
> ---
>  bitbake/lib/toaster/orm/models.py |   14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/bitbake/lib/toaster/orm/models.py
> b/bitbake/lib/toaster/orm/models.py
> index 93506d7..612bdb1 100644
> --- a/bitbake/lib/toaster/orm/models.py
> +++ b/bitbake/lib/toaster/orm/models.py
> @@ -20,6 +20,7 @@
>  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
>
>  from django.db import models
> +from django.db.models import F
>  from django.utils.encoding import python_2_unicode_compatible
>
>
> @@ -208,6 +209,12 @@ class Package(models.Model):
>      section = models.CharField(max_length=80, blank=True)
>      license = models.CharField(max_length=80, blank=True)
>
> +class Package_DependencyManager(models.Manager):
> +    use_for_related_fields = True
> +
> +    def get_query_set(self):
> +        return super(Package_DependencyManager,
> self).get_query_set().exclude(package_id = F('depends_on__id'))
> +
>  class Package_Dependency(models.Model):
>      TYPE_RDEPENDS = 0
>      TYPE_TRDEPENDS = 1
> @@ -247,6 +254,7 @@ class Package_Dependency(models.Model):
>      depends_on = models.ForeignKey(Package,
> related_name='package_dependencies_target')   # soft dependency
>      dep_type = models.IntegerField(choices=DEPENDS_TYPE)
>      target = models.ForeignKey(Target, null=True)
> +    objects = Package_DependencyManager()
>
>  class Target_Installed_Package(models.Model):
>      target = models.ForeignKey(Target)
> @@ -270,6 +278,11 @@ class Recipe(models.Model):
>      bugtracker = models.URLField(blank=True)
>      file_path = models.FilePathField(max_length=255)
>
> +class Recipe_DependencyManager(models.Manager):
> +    use_for_related_fields = True
> +
> +    def get_query_set(self):
> +        return super(Recipe_DependencyManager,
> self).get_query_set().exclude(recipe_id = F('depends_on__id'))
>
>  class Recipe_Dependency(models.Model):
>      TYPE_DEPENDS = 0
> @@ -282,6 +295,7 @@ class Recipe_Dependency(models.Model):
>      recipe = models.ForeignKey(Recipe,
> related_name='r_dependencies_recipe')
>      depends_on = models.ForeignKey(Recipe,
> related_name='r_dependencies_depends')
>      dep_type = models.IntegerField(choices=DEPENDS_TYPE)
> +    objects = Recipe_DependencyManager()
>
>  class Layer(models.Model):
>      name = models.CharField(max_length=100)
> --
> 1.7.9.5
>
> --
> _______________________________________________
> toaster mailing list
> toaster at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster
>



-- 
Alex Damian
Yocto Project
SSG / OTC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/toaster/attachments/20140320/99bab95c/attachment.html>


More information about the toaster mailing list