diff options
Diffstat (limited to 'bitbake/lib/toaster')
-rw-r--r-- | bitbake/lib/toaster/toastergui/templates/base.html | 13 | ||||
-rw-r--r-- | bitbake/lib/toaster/toastergui/templates/newproject.html | 41 | ||||
-rw-r--r-- | bitbake/lib/toaster/toastergui/templates/project.html | 6 | ||||
-rw-r--r-- | bitbake/lib/toaster/toastergui/urls.py | 5 | ||||
-rwxr-xr-x | bitbake/lib/toaster/toastergui/views.py | 38 | ||||
-rw-r--r-- | bitbake/lib/toaster/toastermain/settings.py | 19 |
6 files changed, 118 insertions, 4 deletions
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) { | |||
58 | <div class="navbar-inner"> | 58 | <div class="navbar-inner"> |
59 | <a class="brand logo" href="#"><img src="{% static 'img/logo.png' %}" class="" alt="Yocto logo project"/></a> | 59 | <a class="brand logo" href="#"><img src="{% static 'img/logo.png' %}" class="" alt="Yocto logo project"/></a> |
60 | <a class="brand" href="/">Toaster</a> | 60 | <a class="brand" href="/">Toaster</a> |
61 | {%if MANAGED %} | ||
62 | <div class="btn-group pull-right"> | ||
63 | <a class="btn" href="{% url 'newproject' %}">New project</a> | ||
64 | <button class="btn dropdown-toggle" data-toggle="dropdown"> | ||
65 | <i class="icon-caret-down"></i> | ||
66 | </button> | ||
67 | <ul class="dropdown-menu"> | ||
68 | <li><a href="#">Clone project</a></li> | ||
69 | <li><a href="#">Export project</a></li> | ||
70 | <li><a href="#">Import project</a></li> | ||
71 | </ul> | ||
72 | </div> | ||
73 | {%endif%} | ||
61 | <a class="pull-right manual" target="_blank" href="http://www.yoctoproject.org/documentation/toaster-manual"> | 74 | <a class="pull-right manual" target="_blank" href="http://www.yoctoproject.org/documentation/toaster-manual"> |
62 | <i class="icon-book"></i> | 75 | <i class="icon-book"></i> |
63 | Toaster manual | 76 | Toaster manual |
diff --git a/bitbake/lib/toaster/toastergui/templates/newproject.html b/bitbake/lib/toaster/toastergui/templates/newproject.html new file mode 100644 index 0000000000..e5a6551967 --- /dev/null +++ b/bitbake/lib/toaster/toastergui/templates/newproject.html | |||
@@ -0,0 +1,41 @@ | |||
1 | {% extends "base.html" %} | ||
2 | {% load projecttags %} | ||
3 | {% load humanize %} | ||
4 | {% block pagecontent %} | ||
5 | <div class="row-fluid"> | ||
6 | <div class="span6"> | ||
7 | <div class="page-header"> | ||
8 | <h1>Create a new project</h1> | ||
9 | </div> | ||
10 | <form> | ||
11 | <fieldset> | ||
12 | <label>Project name <span class="muted">(required)</span></label> | ||
13 | <input type="text" class="input-xlarge" required name="projectname"> | ||
14 | <label class="project-form"> | ||
15 | Project owner | ||
16 | <i class="icon-question-sign get-help" title="The go-to person for this project"></i> | ||
17 | </label> | ||
18 | <form method="POST"> | ||
19 | <input type="text"> | ||
20 | <label class="project-form">Owner's email</label> | ||
21 | <input type="email" class="input-large" name="email"> | ||
22 | <label class="project-form"> | ||
23 | Yocto Project version | ||
24 | <i class="icon-question-sign get-help" title="This sets the branch for the Yocto Project core layers (meta, meta-yocto and meta-yocto-bsp), and for the layers you use from the OpenEmbedded Metadata Index"></i> | ||
25 | </label> | ||
26 | <select> | ||
27 | <option>Yocto Project 1.7 "D?"</option> | ||
28 | <option>Yocto Project 1.6 "Daisy"</option> | ||
29 | <option>Yocto Project 1.5 "Dora"</option> | ||
30 | </select> | ||
31 | </form> | ||
32 | </fieldset> | ||
33 | |||
34 | <div class="form-actions"> | ||
35 | <a href="project-with-targets.html" class="btn btn-primary btn-large">Create project</a> | ||
36 | </div> | ||
37 | </form> | ||
38 | </div> | ||
39 | </div> | ||
40 | </div> | ||
41 | {% 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 @@ | |||
1 | {% extends "base.html" %} | ||
2 | {% load projecttags %} | ||
3 | {% load humanize %} | ||
4 | {% block pagecontent %} | ||
5 | |||
6 | {% 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', | |||
65 | # urls not linked from the dashboard | 65 | # urls not linked from the dashboard |
66 | url(r'^layers/$', 'layer', name='all-layers'), | 66 | url(r'^layers/$', 'layer', name='all-layers'), |
67 | url(r'^layerversions/(?P<layerversion_id>\d+)/recipes/.*$', 'layer_versions_recipes', name='layer_versions_recipes'), | 67 | url(r'^layerversions/(?P<layerversion_id>\d+)/recipes/.*$', 'layer_versions_recipes', name='layer_versions_recipes'), |
68 | |||
69 | # project URLs | ||
70 | url(r'^newproject/$', 'newproject', name='newproject'), | ||
71 | url(r'^project/$', 'project', name='project'), | ||
72 | |||
68 | # default redirection | 73 | # default redirection |
69 | url(r'^$', RedirectView.as_view( url= 'builds/')), | 74 | url(r'^$', RedirectView.as_view( url= 'builds/')), |
70 | ) | 75 | ) |
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): | |||
1758 | # stubbed for now | 1758 | # stubbed for now |
1759 | return redirect(builds) | 1759 | return redirect(builds) |
1760 | 1760 | ||
1761 | |||
1762 | import toastermain.settings | ||
1763 | def managedcontextprocessor(request): | ||
1764 | return { "MANAGED" : toastermain.settings.MANAGED } | ||
1765 | |||
1766 | |||
1767 | # we have a set of functions if we're in managed mode, or | ||
1768 | # a default "page not available" simple functions for interactive mode | ||
1769 | if toastermain.settings.MANAGED: | ||
1770 | |||
1771 | # new project | ||
1772 | def newproject(request): | ||
1773 | template = "newproject.html" | ||
1774 | context = {} | ||
1775 | if request.method == "GET": | ||
1776 | # render new project page | ||
1777 | return render(request, template, context) | ||
1778 | elif request.method == "POST": | ||
1779 | if request.method: | ||
1780 | return redirect(project) | ||
1781 | else: | ||
1782 | return render(request, template, context) | ||
1783 | raise Exception("Invalid HTTP method for this page") | ||
1784 | |||
1785 | # Shows the edit project page | ||
1786 | def project(request): | ||
1787 | template = "project.html" | ||
1788 | context = {} | ||
1789 | return render(request, template, context) | ||
1790 | |||
1791 | |||
1792 | else: | ||
1793 | # these are pages that are NOT available in interactive mode | ||
1794 | def newproject(request): | ||
1795 | raise Exception("page not available in interactive mode") | ||
1796 | |||
1797 | def project(request): | ||
1798 | 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: | |||
75 | raise Exception("FIXME: Please implement missing database url schema for url: %s" % dburl) | 75 | raise Exception("FIXME: Please implement missing database url schema for url: %s" % dburl) |
76 | 76 | ||
77 | 77 | ||
78 | if 'TOASTER_MANAGED' in os.environ and os.environ['TOASTER_MANAGED'] == "1": | ||
79 | MANAGED = True | ||
80 | else: | ||
81 | MANAGED = False | ||
82 | |||
78 | # Allows current database settings to be exported as a DATABASE_URL environment variable value | 83 | # Allows current database settings to be exported as a DATABASE_URL environment variable value |
79 | 84 | ||
80 | def getDATABASE_URL(): | 85 | def getDATABASE_URL(): |
@@ -221,12 +226,11 @@ TEMPLATE_CONTEXT_PROCESSORS = ('django.contrib.auth.context_processors.auth', | |||
221 | 'django.core.context_processors.static', | 226 | 'django.core.context_processors.static', |
222 | 'django.core.context_processors.tz', | 227 | 'django.core.context_processors.tz', |
223 | 'django.contrib.messages.context_processors.messages', | 228 | 'django.contrib.messages.context_processors.messages', |
224 | "django.core.context_processors.request") | 229 | "django.core.context_processors.request", |
230 | 'toastergui.views.managedcontextprocessor', | ||
231 | ) | ||
225 | 232 | ||
226 | INSTALLED_APPS = ( | 233 | INSTALLED_APPS = ( |
227 | #'django.contrib.auth', | ||
228 | #'django.contrib.contenttypes', | ||
229 | #'django.contrib.sessions', | ||
230 | #'django.contrib.sites', | 234 | #'django.contrib.sites', |
231 | #'django.contrib.messages', | 235 | #'django.contrib.messages', |
232 | 'django.contrib.staticfiles', | 236 | 'django.contrib.staticfiles', |
@@ -243,6 +247,13 @@ INSTALLED_APPS = ( | |||
243 | 'bldcontrol', | 247 | 'bldcontrol', |
244 | ) | 248 | ) |
245 | 249 | ||
250 | # if we run in managed mode, we need user support | ||
251 | if MANAGED: | ||
252 | INSTALLED_APPS = ('django.contrib.auth', | ||
253 | 'django.contrib.contenttypes', | ||
254 | 'django.contrib.sessions',) + INSTALLED_APPS | ||
255 | |||
256 | |||
246 | # We automatically detect and install applications here if | 257 | # We automatically detect and install applications here if |
247 | # they have a 'models.py' or 'views.py' file | 258 | # they have a 'models.py' or 'views.py' file |
248 | import os | 259 | import os |