diff options
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r-- | bitbake/lib/toaster/orm/models.py | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py index 5eff955453..454f3692be 100644 --- a/bitbake/lib/toaster/orm/models.py +++ b/bitbake/lib/toaster/orm/models.py | |||
@@ -103,7 +103,7 @@ class Project(models.Model): | |||
103 | if release == None: | 103 | if release == None: |
104 | release = self.release | 104 | release = self.release |
105 | # layers on the same branch or layers specifically set for this project | 105 | # layers on the same branch or layers specifically set for this project |
106 | queryset = Layer_Version.objects.filter((Q(up_branch__name = release.branch_name) & Q(project = None)) | Q(project = self)) | 106 | queryset = Layer_Version.objects.filter((Q(up_branch__name = release.branch_name) & Q(project = None)) | Q(project = self) | Q(build__project = self)) |
107 | if layer_name is not None: | 107 | if layer_name is not None: |
108 | # we select only a layer name | 108 | # we select only a layer name |
109 | queryset = queryset.filter(layer__name = layer_name) | 109 | queryset = queryset.filter(layer__name = layer_name) |
@@ -952,11 +952,24 @@ class Layer_Version(models.Model): | |||
952 | """ Returns an ordered layerversion list that satisfies a LayerVersionDependency using the layer name and the current Project Releases' LayerSource priority """ | 952 | """ Returns an ordered layerversion list that satisfies a LayerVersionDependency using the layer name and the current Project Releases' LayerSource priority """ |
953 | def _get_ls_priority(ls): | 953 | def _get_ls_priority(ls): |
954 | try: | 954 | try: |
955 | # if there is no layer source, we have minus infinite priority, as we don't want this layer selected | ||
956 | if ls == None: | ||
957 | return -10000 | ||
955 | return ls.releaselayersourcepriority_set.get(release=project.release).priority | 958 | return ls.releaselayersourcepriority_set.get(release=project.release).priority |
956 | except ReleaseLayerSourcePriority.DoesNotExist: | 959 | except ReleaseLayerSourcePriority.DoesNotExist: |
957 | raise | 960 | raise |
961 | |||
962 | # layers created for this project, or coming from a build inthe project | ||
963 | query = Q(project = project) | Q(build__project = project) | ||
964 | if self.up_branch is not None: | ||
965 | # the same up_branch name | ||
966 | query |= Q(up_branch__name=self.up_branch.name) | ||
967 | else: | ||
968 | # or we have a layer in the project that's similar to mine (See the layer.name constraint below) | ||
969 | query |= Q(projectlayer__project=project) | ||
970 | |||
958 | return sorted( | 971 | return sorted( |
959 | Layer_Version.objects.filter( layer__name = self.layer.name, up_branch__name = self.up_branch.name ), | 972 | Layer_Version.objects.filter(layer__name = self.layer.name).filter(query).select_related('layer_source', 'layer'), |
960 | key = lambda x: _get_ls_priority(x.layer_source), | 973 | key = lambda x: _get_ls_priority(x.layer_source), |
961 | reverse = True) | 974 | reverse = True) |
962 | 975 | ||
@@ -965,10 +978,12 @@ class Layer_Version(models.Model): | |||
965 | return self.commit | 978 | return self.commit |
966 | if self.branch is not None and len(self.branch) > 0: | 979 | if self.branch is not None and len(self.branch) > 0: |
967 | return self.branch | 980 | return self.branch |
968 | return self.up_branch.name | 981 | if self.up_branch is not None: |
982 | return self.up_branch.name | ||
983 | raise Exception("Cannot determine the vcs_reference for layer version %s" % vars(self)) | ||
969 | 984 | ||
970 | def __unicode__(self): | 985 | def __unicode__(self): |
971 | return str(self.layer) + " (" + self.commit +")" | 986 | return str(self.layer) + "(%s,%s)" % (self.get_vcs_reference(), self.build.project if self.build is not None else "None") |
972 | 987 | ||
973 | class Meta: | 988 | class Meta: |
974 | unique_together = ("layer_source", "up_id") | 989 | unique_together = ("layer_source", "up_id") |