summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/orm/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r--bitbake/lib/toaster/orm/models.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index f5c600ba9f..46b704c130 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -20,7 +20,7 @@
20# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 21
22from django.db import models 22from django.db import models
23from django.db.models import F 23from django.db.models import F, Q
24from django.utils import timezone 24from django.utils import timezone
25 25
26 26
@@ -98,6 +98,25 @@ class Project(models.Model):
98 def __unicode__(self): 98 def __unicode__(self):
99 return "%s (%s, %s)" % (self.name, self.release, self.bitbake_version) 99 return "%s (%s, %s)" % (self.name, self.release, self.bitbake_version)
100 100
101 # returns a queryset of compatible layers for a project
102 def compatible_layerversions(self, release = None, layer_name = None):
103 if release == None:
104 release = self.release
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))
107 if layer_name is not None:
108 # we select only a layer name
109 queryset = queryset.filter(layer__name = layer_name)
110
111 # order by layer version priority
112 queryset = queryset.filter(layer_source__releaselayersourcepriority__release = release).order_by("-layer_source__releaselayersourcepriority__priority")
113
114 return queryset
115
116 # returns a set of layer-equivalent set of layers already in project
117 def projectlayer_equivalent_set(self):
118 return [j for i in [x.layercommit.get_equivalents_wpriority(self) for x in self.projectlayer_set.all()] for j in i]
119
101 def schedule_build(self): 120 def schedule_build(self):
102 from bldcontrol.models import BuildRequest, BRTarget, BRLayer, BRVariable, BRBitbake 121 from bldcontrol.models import BuildRequest, BRTarget, BRLayer, BRVariable, BRBitbake
103 br = BuildRequest.objects.create(project = self) 122 br = BuildRequest.objects.create(project = self)