summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/toaster/contrib/tts/urllist.py3
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/base.js3
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/libtoaster.js8
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/projectapp.js73
-rw-r--r--bitbake/lib/toaster/toastergui/templates/base.html3
-rw-r--r--bitbake/lib/toaster/toastergui/templates/project.html2
-rw-r--r--bitbake/lib/toaster/toastergui/tests.py1
-rw-r--r--bitbake/lib/toaster/toastergui/urls.py2
-rwxr-xr-xbitbake/lib/toaster/toastergui/views.py110
9 files changed, 108 insertions, 97 deletions
diff --git a/bitbake/lib/toaster/contrib/tts/urllist.py b/bitbake/lib/toaster/contrib/tts/urllist.py
index a7d6d6ec4e..433ac9fe85 100644
--- a/bitbake/lib/toaster/contrib/tts/urllist.py
+++ b/bitbake/lib/toaster/contrib/tts/urllist.py
@@ -40,10 +40,7 @@ URLS = [
40'toastergui/project/1/importlayer', 40'toastergui/project/1/importlayer',
41'toastergui/project/1/targets/', 41'toastergui/project/1/targets/',
42'toastergui/project/1/machines/', 42'toastergui/project/1/machines/',
43'toastergui/xhr_build/',
44'toastergui/xhr_projectbuild/1/', 43'toastergui/xhr_projectbuild/1/',
45'toastergui/xhr_projectinfo/',
46'toastergui/xhr_projectedit/1',
47'toastergui/xhr_configvaredit/1', 44'toastergui/xhr_configvaredit/1',
48'toastergui/xhr_datatypeahead/1', 45'toastergui/xhr_datatypeahead/1',
49'toastergui/xhr_importlayer/', 46'toastergui/xhr_importlayer/',
diff --git a/bitbake/lib/toaster/toastergui/static/js/base.js b/bitbake/lib/toaster/toastergui/static/js/base.js
index 9424b6c328..9c8d01ef5a 100644
--- a/bitbake/lib/toaster/toastergui/static/js/base.js
+++ b/bitbake/lib/toaster/toastergui/static/js/base.js
@@ -29,7 +29,7 @@ function basePageInit (ctx) {
29 if (libtoaster.ctx.projectId == undefined) 29 if (libtoaster.ctx.projectId == undefined)
30 return; 30 return;
31 31
32 libtoaster.getProjectInfo(ctx.projectInfoUrl, libtoaster.ctx.projectId, 32 libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl,
33 function(data){ 33 function(data){
34 if (data.machine.name == undefined || data.layers.length == 0) { 34 if (data.machine.name == undefined || data.layers.length == 0) {
35 /* we can't build anything with out a machine and some layers */ 35 /* we can't build anything with out a machine and some layers */
@@ -102,7 +102,6 @@ function basePageInit (ctx) {
102 /* TBD: do we override even if we already have a context project ?? */ 102 /* TBD: do we override even if we already have a context project ?? */
103 /* TODO: replace global library context with references to the "selected" project */ 103 /* TODO: replace global library context with references to the "selected" project */
104 libtoaster.ctx.projectPageUrl = selectedProject.projectPageUrl; 104 libtoaster.ctx.projectPageUrl = selectedProject.projectPageUrl;
105 libtoaster.ctx.xhrProjectEditUrl = selectedProject.xhrProjectEditUrl;
106 libtoaster.ctx.projectName = selectedProject.name; 105 libtoaster.ctx.projectName = selectedProject.name;
107 libtoaster.ctx.projectId = selectedProject.id; 106 libtoaster.ctx.projectId = selectedProject.id;
108 107
diff --git a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js
index 72fb0a93f5..87910299a5 100644
--- a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js
+++ b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js
@@ -120,11 +120,11 @@ var libtoaster = (function (){
120 } 120 }
121 121
122 /* Get a project's configuration info */ 122 /* Get a project's configuration info */
123 function _getProjectInfo(url, projectId, onsuccess, onfail){ 123 function _getProjectInfo(url, onsuccess, onfail){
124 $.ajax({ 124 $.ajax({
125 type: "POST", 125 type: "GET",
126 data : { format: "json" },
126 url: url, 127 url: url,
127 data: { project_id : projectId },
128 headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, 128 headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
129 success: function (_data) { 129 success: function (_data) {
130 if (_data.error !== "ok") { 130 if (_data.error !== "ok") {
@@ -150,7 +150,7 @@ var libtoaster = (function (){
150 function _editCurrentProject(data, onSuccess, onFail){ 150 function _editCurrentProject(data, onSuccess, onFail){
151 $.ajax({ 151 $.ajax({
152 type: "POST", 152 type: "POST",
153 url: libtoaster.ctx.xhrProjectEditUrl, 153 url: libtoaster.ctx.projectPageUrl + "?format=json",
154 data: data, 154 data: data,
155 headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, 155 headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
156 success: function (data) { 156 success: function (data) {
diff --git a/bitbake/lib/toaster/toastergui/static/js/projectapp.js b/bitbake/lib/toaster/toastergui/static/js/projectapp.js
index a3309c76af..36c942fa29 100644
--- a/bitbake/lib/toaster/toastergui/static/js/projectapp.js
+++ b/bitbake/lib/toaster/toastergui/static/js/projectapp.js
@@ -156,6 +156,62 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
156 * Retrieves text suggestions for text-edit drop down autocomplete boxes 156 * Retrieves text suggestions for text-edit drop down autocomplete boxes
157 */ 157 */
158 158
159 $scope.getLayersAutocompleteSuggestions = function(currentValue) {
160 var deffered = $q.defer();
161
162 $http({method:"GET", url: $scope.urls.layers, params : { search: currentValue, format: "json" }})
163 .success(function (_data) {
164 if (_data.error != "ok") {
165 console.warn("error on data", _data.error);
166 deffered.reject(_data.error);
167 }
168 deffered.resolve(_data.rows);
169 });
170
171 return deffered.promise;
172 }
173
174 $scope.filterProjectLayerIds = function () {
175 return $scope.layers.map(function (e) { return e.id; });
176 }
177
178 $scope.getMachinesAutocompleteSuggestions = function(currentValue) {
179 var deffered = $q.defer();
180
181 $http({method:"GET", url: $scope.urls.machines, params : { search: currentValue, format: "json" }})
182 .success(function (_data) {
183 if (_data.error != "ok") {
184 console.warn("error on data", _data.error);
185 deffered.reject(_data.error);
186 }
187 deffered.resolve(_data.rows);
188 });
189
190 return deffered.promise;
191 }
192
193 $scope.getRecipesAutocompleteSuggestions = function(currentValue) {
194 var deffered = $q.defer();
195
196 $http({method:"GET", url: $scope.urls.targets, params : { search: currentValue, format: "json" }})
197 .success(function (_data) {
198 if (_data.error != "ok") {
199 console.warn("error on data", _data.error);
200 deffered.reject(_data.error);
201 }
202 deffered.resolve(_data.rows);
203 });
204 return deffered.promise;
205 }
206
207 $scope.values = function() {
208 var deffered = $q.defer();
209
210 deffered.resolve(["mama", "tata"]);
211
212 return deffered.promise;
213 };
214
159 $scope.getAutocompleteSuggestions = function(type, currentValue) { 215 $scope.getAutocompleteSuggestions = function(type, currentValue) {
160 var deffered = $q.defer(); 216 var deffered = $q.defer();
161 217
@@ -421,7 +477,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
421 477
422 478
423 $scope.onLayerSelect = function (item) { 479 $scope.onLayerSelect = function (item) {
424 $scope.layerAddId = item.id; 480 $scope.layerToAdd = item;
425 }; 481 };
426 482
427 $scope.machineSelect = function (machineName) { 483 $scope.machineSelect = function (machineName) {
@@ -443,14 +499,9 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
443 }; 499 };
444 500
445 501
446 $scope.layerAddById = function (id) {
447 $scope.layerAddId = id;
448 $scope.layerAdd();
449 };
450
451 $scope.layerAdd = function() { 502 $scope.layerAdd = function() {
452 503
453 $http({method:"GET", url: $scope.urls.xhr_datatypeahead, params : { type: "layerdeps", value: $scope.layerAddId }}) 504 $http({method:"GET", url: $scope.layerToAdd.layerdict.layerdetailurl, params : {}})
454 .success(function (_data) { 505 .success(function (_data) {
455 if (_data.error != "ok") { 506 if (_data.error != "ok") {
456 console.warn(_data.error); 507 console.warn(_data.error);
@@ -493,7 +544,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
493 }); 544 });
494 545
495 modalInstance.result.then(function (selectedArray) { 546 modalInstance.result.then(function (selectedArray) {
496 selectedArray.push($scope.layerAddId); 547 selectedArray.push($scope.layerToAdd.layerversion.id);
497 console.warn("TRC6: selected", selectedArray); 548 console.warn("TRC6: selected", selectedArray);
498 549
499 $scope._makeXHRCall({ 550 $scope._makeXHRCall({
@@ -512,7 +563,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
512 $scope._makeXHRCall({ 563 $scope._makeXHRCall({
513 method: "POST", url: $scope.urls.xhr_edit, 564 method: "POST", url: $scope.urls.xhr_edit,
514 data: { 565 data: {
515 layerAdd: $scope.layerAddId, 566 layerAdd: $scope.layerToAdd.layerversion.id,
516 } 567 }
517 }).then(function () { 568 }).then(function () {
518 $scope.layerAddName = undefined; 569 $scope.layerAddName = undefined;
@@ -768,10 +819,8 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
768 819
769 820
770 _cmdExecuteWithParam("/layeradd=", function (layer) { 821 _cmdExecuteWithParam("/layeradd=", function (layer) {
771 angular.forEach(layer.split(","), function (l) { 822 $scope.layerToAdd = layer;
772 $scope.layerAddId = l;
773 $scope.layerAdd(); 823 $scope.layerAdd();
774 });
775 }); 824 });
776 }; 825 };
777 826
diff --git a/bitbake/lib/toaster/toastergui/templates/base.html b/bitbake/lib/toaster/toastergui/templates/base.html
index e10dc11673..5d51bc3c95 100644
--- a/bitbake/lib/toaster/toastergui/templates/base.html
+++ b/bitbake/lib/toaster/toastergui/templates/base.html
@@ -34,13 +34,11 @@
34 projectsUrl : "{% url 'all-projects' %}", 34 projectsUrl : "{% url 'all-projects' %}",
35 {% if project.id %} 35 {% if project.id %}
36 xhrProjectDataTypeaheadUrl : "{% url 'xhr_datatypeahead' project.id %}", 36 xhrProjectDataTypeaheadUrl : "{% url 'xhr_datatypeahead' project.id %}",
37 xhrProjectEditUrl : "{% url 'xhr_projectedit' project.id %}",
38 projectPageUrl : "{% url 'project' project.id %}", 37 projectPageUrl : "{% url 'project' project.id %}",
39 projectName : "{{project.name}}", 38 projectName : "{{project.name}}",
40 projectId : {{project.id}}, 39 projectId : {{project.id}},
41 {% else %} 40 {% else %}
42 xhrProjectDataTypeaheadUrl : undefined, 41 xhrProjectDataTypeaheadUrl : undefined,
43 xhrProjectEditUrl : undefined,
44 projectPageUrl : undefined, 42 projectPageUrl : undefined,
45 projectName : undefined, 43 projectName : undefined,
46 projectId : undefined, 44 projectId : undefined,
@@ -53,7 +51,6 @@
53 $(document).ready(function () { 51 $(document).ready(function () {
54 /* Vars needed for base.js */ 52 /* Vars needed for base.js */
55 var ctx = {}; 53 var ctx = {};
56 ctx.projectInfoUrl = "{% url 'xhr_projectinfo' %}";
57 ctx.numProjects = {{projects|length}}; 54 ctx.numProjects = {{projects|length}};
58 ctx.currentUrl = "{{request.path|escapejs}}"; 55 ctx.currentUrl = "{{request.path|escapejs}}";
59 56
diff --git a/bitbake/lib/toaster/toastergui/templates/project.html b/bitbake/lib/toaster/toastergui/templates/project.html
index 933da4f7da..e598631304 100644
--- a/bitbake/lib/toaster/toastergui/templates/project.html
+++ b/bitbake/lib/toaster/toastergui/templates/project.html
@@ -430,7 +430,7 @@ angular.element(document).ready(function() {
430 scope = angular.element("#main").scope(); 430 scope = angular.element("#main").scope();
431 scope.urls = {}; 431 scope.urls = {};
432 scope.urls.xhr_build = "{% url 'xhr_projectbuild' project.id %}"; 432 scope.urls.xhr_build = "{% url 'xhr_projectbuild' project.id %}";
433 scope.urls.xhr_edit = "{% url 'xhr_projectedit' project.id %}"; 433 scope.urls.xhr_edit = "{% url 'project' project.id %}?format=json";
434 scope.urls.xhr_datatypeahead = "{% url 'xhr_datatypeahead' project.id %}"; 434 scope.urls.xhr_datatypeahead = "{% url 'xhr_datatypeahead' project.id %}";
435 scope.urls.layers = "{% url 'all-layers' project.id %}"; 435 scope.urls.layers = "{% url 'all-layers' project.id %}";
436 scope.urls.targets = "{% url 'all-targets' project.id %}"; 436 scope.urls.targets = "{% url 'all-targets' project.id %}";
diff --git a/bitbake/lib/toaster/toastergui/tests.py b/bitbake/lib/toaster/toastergui/tests.py
index 0f10020940..c92c5feeb5 100644
--- a/bitbake/lib/toaster/toastergui/tests.py
+++ b/bitbake/lib/toaster/toastergui/tests.py
@@ -40,7 +40,6 @@ class AllProjectsViewTestCase(ProvisionedProjectTestCase):
40 self.assertTrue("id" in data["list"][0]) 40 self.assertTrue("id" in data["list"][0])
41 self.assertTrue("xhrProjectDataTypeaheadUrl" in data["list"][0]) 41 self.assertTrue("xhrProjectDataTypeaheadUrl" in data["list"][0])
42 self.assertTrue("projectPageUrl" in data["list"][0]) 42 self.assertTrue("projectPageUrl" in data["list"][0])
43 self.assertTrue("xhrProjectEditUrl" in data["list"][0])
44 self.assertTrue("projectBuildUrl" in data["list"][0]) 43 self.assertTrue("projectBuildUrl" in data["list"][0])
45 44
46class ProvisionedLayersProjectTestCase(ProvisionedProjectTestCase): 45class ProvisionedLayersProjectTestCase(ProvisionedProjectTestCase):
diff --git a/bitbake/lib/toaster/toastergui/urls.py b/bitbake/lib/toaster/toastergui/urls.py
index e10e0bb159..d527be0017 100644
--- a/bitbake/lib/toaster/toastergui/urls.py
+++ b/bitbake/lib/toaster/toastergui/urls.py
@@ -122,8 +122,6 @@ urlpatterns = patterns('toastergui.views',
122 name=tables.LayerMachinesTable.__name__.lower()), 122 name=tables.LayerMachinesTable.__name__.lower()),
123 123
124 url(r'^xhr_projectbuild/(?P<pid>\d+)$', 'xhr_projectbuild', name='xhr_projectbuild'), 124 url(r'^xhr_projectbuild/(?P<pid>\d+)$', 'xhr_projectbuild', name='xhr_projectbuild'),
125 url(r'^xhr_projectinfo/$', 'xhr_projectinfo', name='xhr_projectinfo'),
126 url(r'^xhr_projectedit/(?P<pid>\d+)$', 'xhr_projectedit', name='xhr_projectedit'),
127 url(r'^xhr_configvaredit/(?P<pid>\d+)$', 'xhr_configvaredit', name='xhr_configvaredit'), 125 url(r'^xhr_configvaredit/(?P<pid>\d+)$', 'xhr_configvaredit', name='xhr_configvaredit'),
128 126
129 url(r'^xhr_datatypeahead/(?P<pid>\d+)$', 'xhr_datatypeahead', name='xhr_datatypeahead'), 127 url(r'^xhr_datatypeahead/(?P<pid>\d+)$', 'xhr_datatypeahead', name='xhr_datatypeahead'),
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index 678e356e0d..91c4fa2543 100755
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -2210,6 +2210,45 @@ if toastermain.settings.MANAGED:
2210 except User.DoesNotExist: 2210 except User.DoesNotExist:
2211 puser = None 2211 puser = None
2212 2212
2213 # execute POST requests
2214 if request.method == "POST":
2215 # add layers
2216 if 'layerAdd' in request.POST:
2217 for lc in Layer_Version.objects.filter(pk__in=request.POST['layerAdd'].split(",")):
2218 ProjectLayer.objects.get_or_create(project = prj, layercommit = lc)
2219
2220 # remove layers
2221 if 'layerDel' in request.POST:
2222 for t in request.POST['layerDel'].strip().split(" "):
2223 pt = ProjectLayer.objects.filter(project = prj, layercommit_id = int(t)).delete()
2224
2225 if 'projectName' in request.POST:
2226 prj.name = request.POST['projectName']
2227 prj.save();
2228
2229 if 'projectVersion' in request.POST:
2230 prj.release = Release.objects.get(pk = request.POST['projectVersion'])
2231 # we need to change the bitbake version
2232 prj.bitbake_version = prj.release.bitbake_version
2233 prj.save()
2234 # we need to change the layers
2235 for i in prj.projectlayer_set.all():
2236 # find and add a similarly-named layer on the new branch
2237 try:
2238 lv = prj.compatible_layerversions(layer_name = i.layercommit.layer.name)[0]
2239 ProjectLayer.objects.get_or_create(project = prj, layercommit = lv)
2240 except IndexError:
2241 pass
2242 finally:
2243 # get rid of the old entry
2244 i.delete()
2245
2246 if 'machineName' in request.POST:
2247 machinevar = prj.projectvariable_set.get(name="MACHINE")
2248 machinevar.value=request.POST['machineName']
2249 machinevar.save()
2250
2251
2213 # we use implicit knowledge of the current user's project to filter layer information, e.g. 2252 # we use implicit knowledge of the current user's project to filter layer information, e.g.
2214 pid = prj.id 2253 pid = prj.id
2215 2254
@@ -2241,10 +2280,12 @@ if toastermain.settings.MANAGED:
2241 "branch" : { "name" : x.layercommit.get_vcs_reference(), "layersource" : x.layercommit.up_branch.layer_source.name if x.layercommit.up_branch != None else None}}, 2280 "branch" : { "name" : x.layercommit.get_vcs_reference(), "layersource" : x.layercommit.up_branch.layer_source.name if x.layercommit.up_branch != None else None}},
2242 prj.projectlayer_set.all().order_by("id")), 2281 prj.projectlayer_set.all().order_by("id")),
2243 "targets" : map(lambda x: {"target" : x.target, "task" : x.task, "pk": x.pk}, prj.projecttarget_set.all()), 2282 "targets" : map(lambda x: {"target" : x.target, "task" : x.task, "pk": x.pk}, prj.projecttarget_set.all()),
2283 "variables": map(lambda x: (x.name, x.value), prj.projectvariable_set.all()),
2244 "freqtargets": freqtargets[:5], 2284 "freqtargets": freqtargets[:5],
2245 "releases": map(lambda x: {"id": x.pk, "name": x.name, "description":x.description}, Release.objects.all()), 2285 "releases": map(lambda x: {"id": x.pk, "name": x.name, "description":x.description}, Release.objects.all()),
2246 "project_html": 1, 2286 "project_html": 1,
2247 } 2287 }
2288
2248 try: 2289 try:
2249 context["machine"] = {"name": prj.projectvariable_set.get(name="MACHINE").value} 2290 context["machine"] = {"name": prj.projectvariable_set.get(name="MACHINE").value}
2250 except ProjectVariable.DoesNotExist: 2291 except ProjectVariable.DoesNotExist:
@@ -2300,66 +2341,6 @@ if toastermain.settings.MANAGED:
2300 except Exception as e: 2341 except Exception as e:
2301 return HttpResponse(jsonfilter({"error":str(e) + "\n" + traceback.format_exc()}), content_type = "application/json") 2342 return HttpResponse(jsonfilter({"error":str(e) + "\n" + traceback.format_exc()}), content_type = "application/json")
2302 2343
2303 # This is a wraper for xhr_projectedit which allows for a project id
2304 # which only becomes known client side
2305 def xhr_projectinfo(request):
2306 if request.POST.has_key("project_id") == False:
2307 raise BadParameterException("invalid project id")
2308
2309 return xhr_projectedit(request, request.POST['project_id'])
2310
2311 def xhr_projectedit(request, pid):
2312 try:
2313 prj = Project.objects.get(id = pid)
2314 # add layers
2315 if 'layerAdd' in request.POST:
2316 for lc in Layer_Version.objects.filter(pk__in=request.POST['layerAdd'].split(",")):
2317 ProjectLayer.objects.get_or_create(project = prj, layercommit = lc)
2318
2319 # remove layers
2320 if 'layerDel' in request.POST:
2321 for t in request.POST['layerDel'].strip().split(" "):
2322 pt = ProjectLayer.objects.filter(project = prj, layercommit_id = int(t)).delete()
2323
2324 if 'projectName' in request.POST:
2325 prj.name = request.POST['projectName']
2326 prj.save();
2327
2328 if 'projectVersion' in request.POST:
2329 prj.release = Release.objects.get(pk = request.POST['projectVersion'])
2330 # we need to change the bitbake version
2331 prj.bitbake_version = prj.release.bitbake_version
2332 prj.save()
2333 # we need to change the layers
2334 for i in prj.projectlayer_set.all():
2335 # find and add a similarly-named layer on the new branch
2336 try:
2337 lv = prj.compatible_layerversions(layer_name = i.layercommit.layer.name)[0]
2338 ProjectLayer.objects.get_or_create(project = prj, layercommit = lv)
2339 except IndexError:
2340 pass
2341 finally:
2342 # get rid of the old entry
2343 i.delete()
2344
2345 if 'machineName' in request.POST:
2346 machinevar = prj.projectvariable_set.get(name="MACHINE")
2347 machinevar.value=request.POST['machineName']
2348 machinevar.save()
2349
2350 # return all project settings
2351 return HttpResponse(jsonfilter( {
2352 "error": "ok",
2353 "layers" : map(lambda x: {"id": x.layercommit.pk, "orderid" : x.pk, "name" : x.layercommit.layer.name, "giturl" : x.layercommit.layer.vcs_url, "url": x.layercommit.layer.layer_index_url, "layerdetailurl": reverse("layerdetails", args=(prj.id, x.layercommit.pk,)), "branch" : { "name" : x.layercommit.get_vcs_reference(), "layersource" : x.layercommit.up_branch.layer_source.name}}, prj.projectlayer_set.all().select_related("layer").order_by("id")),
2354 "builds" : _project_recent_build_list(prj),
2355 "variables": map(lambda x: (x.name, x.value), prj.projectvariable_set.all()),
2356 "machine": {"name": prj.projectvariable_set.get(name="MACHINE").value},
2357 "prj": {"name": prj.name, "release": { "id": prj.release.pk, "name": prj.release.name, "desc": prj.release.description}},
2358 }), content_type = "application/json")
2359
2360 except Exception as e:
2361 return HttpResponse(jsonfilter({"error":str(e) + "\n" + traceback.format_exc()}), content_type = "application/json")
2362
2363 2344
2364 from django.views.decorators.csrf import csrf_exempt 2345 from django.views.decorators.csrf import csrf_exempt
2365 @csrf_exempt 2346 @csrf_exempt
@@ -2929,7 +2910,6 @@ if toastermain.settings.MANAGED:
2929 p.id = p.pk 2910 p.id = p.pk
2930 p.xhrProjectDataTypeaheadUrl = reverse('xhr_datatypeahead', args=(p.id,)) 2911 p.xhrProjectDataTypeaheadUrl = reverse('xhr_datatypeahead', args=(p.id,))
2931 p.projectPageUrl = reverse('project', args=(p.id,)) 2912 p.projectPageUrl = reverse('project', args=(p.id,))
2932 p.xhrProjectEditUrl = reverse('xhr_projectedit', args=(p.id,))
2933 p.projectBuildUrl = reverse('xhr_projectbuild', args=(p.id,)) 2913 p.projectBuildUrl = reverse('xhr_projectbuild', args=(p.id,))
2934 2914
2935 # build view-specific information; this is rendered specifically in the builds page, at the top of the page (i.e. Recent builds) 2915 # build view-specific information; this is rendered specifically in the builds page, at the top of the page (i.e. Recent builds)
@@ -3234,14 +3214,6 @@ else:
3234 return {} 3214 return {}
3235 3215
3236 @_template_renderer('landing_not_managed.html') 3216 @_template_renderer('landing_not_managed.html')
3237 def xhr_projectinfo(request):
3238 return {}
3239
3240 @_template_renderer('landing_not_managed.html')
3241 def xhr_projectedit(request, pid):
3242 return {}
3243
3244 @_template_renderer('landing_not_managed.html')
3245 def xhr_datatypeahead(request): 3217 def xhr_datatypeahead(request):
3246 return {} 3218 return {}
3247 3219