diff options
author | Dave Cobbley <david.j.cobbley@linux.intel.com> | 2018-08-14 20:05:37 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-08-23 04:26:31 +0300 |
commit | eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 (patch) | |
tree | de291a73dc37168da6370e2cf16c347d1eba9df8 /import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py | |
parent | 9c3cf826d853102535ead04cebc2d6023eff3032 (diff) | |
download | openbmc-eb8dc40360f0cfef56fb6947cc817a547d6d9bc6.tar.xz |
[Subtree] Removing import-layers directory
As part of the move to subtrees, need to bring all the import layers
content to the top level.
Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f
Signed-off-by: Dave Cobbley <david.j.cobbley@linux.intel.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py')
-rw-r--r-- | import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py deleted file mode 100644 index 5aa0f8d88..000000000 --- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py +++ /dev/null @@ -1,211 +0,0 @@ -# -# BitBake Toaster Implementation -# -# Copyright (C) 2015 Intel Corporation -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -import subprocess - -from toastergui.widgets import ToasterTypeAhead -from orm.models import Project -from django.core.urlresolvers import reverse -from django.core.cache import cache - - -class LayersTypeAhead(ToasterTypeAhead): - """ Typeahead for layers available and not added in the current project's - configuration """ - - def apply_search(self, search_term, prj, request): - layers = prj.get_all_compatible_layer_versions() - layers = layers.order_by('layer__name') - - # Unlike the other typeaheads we also don't want to show suggestions - # for layers already in the project unless required such as when adding - # layerdeps to a new layer. - if "include_added" in request.GET and \ - request.GET['include_added'] != "true": - layers = layers.exclude( - pk__in=prj.get_project_layer_versions(pk=True)) - - primary_results = layers.filter(layer__name__istartswith=search_term) - secondary_results = layers.filter( - layer__name__icontains=search_term).exclude( - pk__in=primary_results) - - results = [] - - for layer_version in list(primary_results) + list(secondary_results): - vcs_reference = layer_version.get_vcs_reference() - - detail = "[ %s | %s ]" % (layer_version.layer.vcs_url, - vcs_reference) - needed_fields = { - 'id': layer_version.pk, - 'name': layer_version.layer.name, - 'layerdetailurl': layer_version.get_detailspage_url(prj.pk), - 'xhrLayerUrl': reverse('xhr_layer', - args=(prj.pk, layer_version.pk)), - 'vcs_url': layer_version.layer.vcs_url, - 'vcs_reference': vcs_reference, - 'detail': detail, - 'local_source_dir': layer_version.layer.local_source_dir, - } - - results.append(needed_fields) - - return results - - -class MachinesTypeAhead(ToasterTypeAhead): - """ Typeahead for all the machines available in the current project's - configuration """ - - def apply_search(self, search_term, prj, request): - machines = prj.get_available_machines() - machines = machines.order_by("name") - - primary_results = machines.filter(name__istartswith=search_term) - secondary_results = machines.filter( - name__icontains=search_term).exclude(pk__in=primary_results) - tertiary_results = machines.filter( - layer_version__layer__name__icontains=search_term).exclude( - pk__in=primary_results).exclude(pk__in=secondary_results) - - results = [] - - for machine in list(primary_results) + list(secondary_results) + \ - list(tertiary_results): - - detail = "[ %s ]" % (machine.layer_version.layer.name) - needed_fields = { - 'id': machine.pk, - 'name': machine.name, - 'detail': detail, - } - - results.append(needed_fields) - return results - - -class DistrosTypeAhead(ToasterTypeAhead): - """ Typeahead for all the distros available in the current project's - configuration """ - def __init__(self): - super(DistrosTypeAhead, self).__init__() - - def apply_search(self, search_term, prj, request): - distros = prj.get_available_distros() - distros = distros.order_by("name") - - primary_results = distros.filter(name__istartswith=search_term) - secondary_results = distros.filter(name__icontains=search_term).exclude(pk__in=primary_results) - tertiary_results = distros.filter(layer_version__layer__name__icontains=search_term).exclude(pk__in=primary_results).exclude(pk__in=secondary_results) - - results = [] - - for distro in list(primary_results) + list(secondary_results) + list(tertiary_results): - - detail = "[ %s ]" % (distro.layer_version.layer.name) - needed_fields = { - 'id' : distro.pk, - 'name' : distro.name, - 'detail' : detail, - } - - results.append(needed_fields) - - return results - - -class RecipesTypeAhead(ToasterTypeAhead): - """ Typeahead for all the recipes available in the current project's - configuration """ - def apply_search(self, search_term, prj, request): - recipes = prj.get_available_recipes() - recipes = recipes.order_by("name") - - primary_results = recipes.filter(name__istartswith=search_term) - secondary_results = recipes.filter( - name__icontains=search_term).exclude(pk__in=primary_results) - tertiary_results = recipes.filter( - layer_version__layer__name__icontains=search_term).exclude( - pk__in=primary_results).exclude(pk__in=secondary_results) - - results = [] - - for recipe in list(primary_results) + list(secondary_results) + \ - list(tertiary_results): - - detail = "[ %s ]" % (recipe.layer_version.layer.name) - needed_fields = { - 'id': recipe.pk, - 'name': recipe.name, - 'detail': detail, - } - - results.append(needed_fields) - - return results - - -class ProjectsTypeAhead(ToasterTypeAhead): - """ Typeahead for all the projects, except for command line builds """ - def apply_search(self, search_term, prj, request): - projects = Project.objects.exclude(is_default=True).order_by("name") - - primary_results = projects.filter(name__istartswith=search_term) - secondary_results = projects.filter( - name__icontains=search_term).exclude(pk__in=primary_results) - - results = [] - - for project in list(primary_results) + list(secondary_results): - needed_fields = { - 'id': project.pk, - 'name': project.name, - 'detail': "", - 'projectPageUrl': reverse('project', args=(project.pk,)) - } - - results.append(needed_fields) - - return results - - -class GitRevisionTypeAhead(ToasterTypeAhead): - def apply_search(self, search_term, prj, request): - results = [] - git_url = request.GET.get('git_url') - ls_remote = cache.get(git_url) - - if ls_remote is None: - ls_remote = subprocess.check_output(['git', 'ls-remote', git_url], - universal_newlines=True) - ls_remote = ls_remote.splitlines() - # Avoid fetching the list of git refs on each new input - cache.set(git_url, ls_remote, 120) - - for rev in ls_remote: - git_rev = str(rev).split("/")[-1:][0] - # "HEAD" has a special meaning in Toaster... YOCTO #9924 - if "HEAD" in git_rev: - continue - - if git_rev.startswith(search_term): - results.append({'name': git_rev, - 'detail': '[ %s ]' % str(rev)}) - - return results |