diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster index 01ffc7a37c..90cd982876 100755 --- a/bitbake/bin/toaster +++ b/bitbake/bin/toaster @@ -139,6 +139,7 @@ if [ -z "$ZSH_NAME" ] && [ `basename \"$0\"` = `basename \"$BASH_SOURCE\"` ]; th webserverKillAll RUNNING=0 } + export TOASTER_MANAGED=1 webserverStartAll || (echo "Fail to start the web server, stopping" 1>&2 && exit 1) xdg-open http://0.0.0.0:8000/ >/dev/null 2>&1 & trap trap_ctrlc SIGINT diff --git a/bitbake/lib/toaster/toastergui/templates/base.html b/bitbake/lib/toaster/toastergui/templates/base.html index 9ca9c9ac3b..1407d641d5 100644 --- a/bitbake/lib/toaster/toastergui/templates/base.html +++ b/bitbake/lib/toaster/toastergui/templates/base.html @@ -58,6 +58,19 @@ function reload_params(params) { +{% endblock %} diff --git a/bitbake/lib/toaster/toastergui/templates/project.html b/bitbake/lib/toaster/toastergui/templates/project.html new file mode 100644 index 0000000000..71adb54431 --- /dev/null +++ b/bitbake/lib/toaster/toastergui/templates/project.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} +{% load projecttags %} +{% load humanize %} +{% block pagecontent %} + +{% endblock %} diff --git a/bitbake/lib/toaster/toastergui/urls.py b/bitbake/lib/toaster/toastergui/urls.py index 9b583f217b..bba4fda074 100644 --- a/bitbake/lib/toaster/toastergui/urls.py +++ b/bitbake/lib/toaster/toastergui/urls.py @@ -65,6 +65,11 @@ urlpatterns = patterns('toastergui.views', # urls not linked from the dashboard url(r'^layers/$', 'layer', name='all-layers'), url(r'^layerversions/(?P\d+)/recipes/.*$', 'layer_versions_recipes', name='layer_versions_recipes'), + + # project URLs + url(r'^newproject/$', 'newproject', name='newproject'), + url(r'^project/$', 'project', name='project'), + # default redirection url(r'^$', RedirectView.as_view( url= 'builds/')), ) diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 1f3e11d57c..7dc0108393 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py @@ -1758,3 +1758,41 @@ def image_information_dir(request, build_id, target_id, packagefile_id): # stubbed for now return redirect(builds) + +import toastermain.settings +def managedcontextprocessor(request): + return { "MANAGED" : toastermain.settings.MANAGED } + + +# we have a set of functions if we're in managed mode, or +# a default "page not available" simple functions for interactive mode +if toastermain.settings.MANAGED: + + # new project + def newproject(request): + template = "newproject.html" + context = {} + if request.method == "GET": + # render new project page + return render(request, template, context) + elif request.method == "POST": + if request.method: + return redirect(project) + else: + return render(request, template, context) + raise Exception("Invalid HTTP method for this page") + + # Shows the edit project page + def project(request): + template = "project.html" + context = {} + return render(request, template, context) + + +else: + # these are pages that are NOT available in interactive mode + def newproject(request): + raise Exception("page not available in interactive mode") + + def project(request): + raise Exception("page not available in interactive mode") diff --git a/bitbake/lib/toaster/toastermain/settings.py b/bitbake/lib/toaster/toastermain/settings.py index 97f2ff7cab..09ec2bda98 100644 --- a/bitbake/lib/toaster/toastermain/settings.py +++ b/bitbake/lib/toaster/toastermain/settings.py @@ -75,6 +75,11 @@ if 'DATABASE_URL' in os.environ: raise Exception("FIXME: Please implement missing database url schema for url: %s" % dburl) +if 'TOASTER_MANAGED' in os.environ and os.environ['TOASTER_MANAGED'] == "1": + MANAGED = True +else: + MANAGED = False + # Allows current database settings to be exported as a DATABASE_URL environment variable value def getDATABASE_URL(): @@ -221,12 +226,11 @@ TEMPLATE_CONTEXT_PROCESSORS = ('django.contrib.auth.context_processors.auth', 'django.core.context_processors.static', 'django.core.context_processors.tz', 'django.contrib.messages.context_processors.messages', - "django.core.context_processors.request") + "django.core.context_processors.request", + 'toastergui.views.managedcontextprocessor', + ) INSTALLED_APPS = ( - #'django.contrib.auth', - #'django.contrib.contenttypes', - #'django.contrib.sessions', #'django.contrib.sites', #'django.contrib.messages', 'django.contrib.staticfiles', @@ -243,6 +247,13 @@ INSTALLED_APPS = ( 'bldcontrol', ) +# if we run in managed mode, we need user support +if MANAGED: + INSTALLED_APPS = ('django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions',) + INSTALLED_APPS + + # We automatically detect and install applications here if # they have a 'models.py' or 'views.py' file import os