diff options
Diffstat (limited to 'bitbake/lib/toaster')
-rw-r--r-- | bitbake/lib/toaster/orm/models.py | 21 | ||||
-rwxr-xr-x | bitbake/lib/toaster/toastergui/views.py | 22 |
2 files changed, 17 insertions, 26 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py index b25910aaac..f07fedaf02 100644 --- a/bitbake/lib/toaster/orm/models.py +++ b/bitbake/lib/toaster/orm/models.py | |||
@@ -195,23 +195,6 @@ class Project(models.Model): | |||
195 | except (Variable.DoesNotExist,IndexError): | 195 | except (Variable.DoesNotExist,IndexError): |
196 | return( "not_found" ) | 196 | return( "not_found" ) |
197 | 197 | ||
198 | # returns a queryset of compatible layers for a project | ||
199 | def compatible_layerversions(self, release = None, layer_name = None): | ||
200 | logger.warning("This function is deprecated") | ||
201 | if release == None: | ||
202 | release = self.release | ||
203 | # layers on the same branch or layers specifically set for this project | ||
204 | queryset = Layer_Version.objects.filter(((Q(up_branch__name = release.branch_name) & Q(project = None)) | Q(project = self)) & Q(build__isnull=True)) | ||
205 | |||
206 | if layer_name is not None: | ||
207 | # we select only a layer name | ||
208 | queryset = queryset.filter(layer__name = layer_name) | ||
209 | |||
210 | # order by layer version priority | ||
211 | queryset = queryset.filter(Q(layer_source=None) | Q(layer_source__releaselayersourcepriority__release = release)).select_related('layer_source', 'layer', 'up_branch', "layer_source__releaselayersourcepriority__priority").order_by("-layer_source__releaselayersourcepriority__priority") | ||
212 | |||
213 | return queryset | ||
214 | |||
215 | def get_all_compatible_layer_versions(self): | 198 | def get_all_compatible_layer_versions(self): |
216 | """ Returns Queryset of all Layer_Versions which are compatible with | 199 | """ Returns Queryset of all Layer_Versions which are compatible with |
217 | this project""" | 200 | this project""" |
@@ -1184,7 +1167,9 @@ class Layer_Version(models.Model): | |||
1184 | return self._handle_url_path(self.layer.vcs_web_tree_base_url, '') | 1167 | return self._handle_url_path(self.layer.vcs_web_tree_base_url, '') |
1185 | 1168 | ||
1186 | def get_equivalents_wpriority(self, project): | 1169 | def get_equivalents_wpriority(self, project): |
1187 | return project.compatible_layerversions(layer_name = self.layer.name) | 1170 | layer_versions = project.get_all_compatible_layer_versions() |
1171 | filtered = layer_versions.filter(layer__name = self.layer.name) | ||
1172 | return filtered.order_by("-layer_source__releaselayersourcepriority__priority") | ||
1188 | 1173 | ||
1189 | def get_vcs_reference(self): | 1174 | def get_vcs_reference(self): |
1190 | if self.branch is not None and len(self.branch) > 0: | 1175 | if self.branch is not None and len(self.branch) > 0: |
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 16f27b8022..bd334b9f80 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py | |||
@@ -2264,16 +2264,17 @@ if True: | |||
2264 | prj.bitbake_version = prj.release.bitbake_version | 2264 | prj.bitbake_version = prj.release.bitbake_version |
2265 | prj.save() | 2265 | prj.save() |
2266 | # we need to change the layers | 2266 | # we need to change the layers |
2267 | for i in prj.projectlayer_set.all(): | 2267 | for project in prj.projectlayer_set.all(): |
2268 | # find and add a similarly-named layer on the new branch | 2268 | # find and add a similarly-named layer on the new branch |
2269 | try: | 2269 | try: |
2270 | lv = prj.compatible_layerversions(layer_name = i.layercommit.layer.name)[0] | 2270 | layer_versions = prj.get_all_compatible_layer_versions() |
2271 | ProjectLayer.objects.get_or_create(project = prj, layercommit = lv) | 2271 | layer_versions = layer_versions.filter(layer__name = project.layercommit.layer.name) |
2272 | ProjectLayer.objects.get_or_create(project = prj, layercommit = layer_versions.first()) | ||
2272 | except IndexError: | 2273 | except IndexError: |
2273 | pass | 2274 | pass |
2274 | finally: | 2275 | finally: |
2275 | # get rid of the old entry | 2276 | # get rid of the old entry |
2276 | i.delete() | 2277 | project.delete() |
2277 | 2278 | ||
2278 | if 'machineName' in request.POST: | 2279 | if 'machineName' in request.POST: |
2279 | machinevar = prj.projectvariable_set.get(name="MACHINE") | 2280 | machinevar = prj.projectvariable_set.get(name="MACHINE") |
@@ -2383,12 +2384,17 @@ if True: | |||
2383 | 2384 | ||
2384 | retval = [] | 2385 | retval = [] |
2385 | 2386 | ||
2386 | for i in prj.projectlayer_set.all(): | 2387 | for project in prj.projectlayer_set.all(): |
2387 | lv = prj.compatible_layerversions(release = Release.objects.get(pk=new_release_id)).filter(layer__name = i.layercommit.layer.name) | 2388 | release = Release.objects.get(pk = new_release_id) |
2389 | |||
2390 | layer_versions = prj.get_all_compatible_layer_versions() | ||
2391 | layer_versions = layer_versions.filter(release = release) | ||
2392 | layer_versions = layer_versions.filter(layer__name = project.layercommit.layer.name) | ||
2393 | |||
2388 | # there is no layer_version with the new release id, | 2394 | # there is no layer_version with the new release id, |
2389 | # and the same name | 2395 | # and the same name |
2390 | if lv.count() < 1: | 2396 | if layer_versions.count() < 1: |
2391 | retval.append(i) | 2397 | retval.append(project) |
2392 | 2398 | ||
2393 | return response({"error":"ok", | 2399 | return response({"error":"ok", |
2394 | "rows" : map( _lv_to_dict(prj), | 2400 | "rows" : map( _lv_to_dict(prj), |