3939from django .http import Http404
4040from django .shortcuts import get_object_or_404
4141from tastypie .bundle import Bundle
42- from tastypie .bundle import Bundle
4342from tastypie .exceptions import ImmediateHttpResponse
4443from tastypie .http import HttpBadRequest , HttpCreated , HttpNotImplemented
4544from tastypie .resources import ModelResource , Resource
@@ -136,9 +135,8 @@ class Meta:
136135 queryset = Environment .objects .all ()
137136 resource_name = 'environment'
138137 authorization = DjangoAuthorization ()
139- authentication = ApiKeyAuthentication ()
140- #authentication = MultiAuthentication(Authentication(),
141- #ApiKeyAuthentication())
138+ authentication = MultiAuthentication (ApiKeyAuthentication (),
139+ Authentication ())
142140
143141
144142class ResultResource (ModelResource ):
@@ -201,8 +199,9 @@ class ResultBundle(Bundle):
201199 'date' ,
202200 )
203201
204- def __init__ (self , obj = None , ** kwargs ):
202+ def __init__ (self , obj = None , request = None , ** kwargs ):
205203 self .data = kwargs
204+ self .request = request
206205
207206 if isinstance (obj , Result ):
208207 self .obj = obj
@@ -215,7 +214,8 @@ def __init__(self, obj=None, **kwargs):
215214 if self .data :
216215 self ._check_data ()
217216 self .__data_validated = False # not used for now
218- super (ResultBundle , self ).__init__ (data = self .data , obj = self .obj )
217+ super (ResultBundle , self ).__init__ (data = self .data , obj = self .obj ,
218+ request = self .request )
219219
220220 def _populate_obj_by_data (self ):
221221 """Database lookup
@@ -224,17 +224,23 @@ def _populate_obj_by_data(self):
224224 """
225225 def populate (key ):
226226 return {'project' : lambda : ProjectResource ().get_via_uri (
227- self .data ['project' ]),
227+ self .data ['project' ], request = self .request ),
228+
228229 'executable' : lambda : ExecutableResource ().get_via_uri (
229- self .data ['executable' ]),
230+ self .data ['executable' ], request = self .request ),
231+
230232 'benchmark' : lambda : BenchmarkResource ().get_via_uri (
231- self .data ['benchmark' ]),
233+ self .data ['benchmark' ], request = self .request ),
234+
232235 'environment' : lambda : EnvironmentResource ().get_via_uri (
233- self .data ['environment' ]),
236+ self .data ['environment' ], request = self .request ),
237+
234238 'branch' : lambda : BranchResource ().get_via_uri (
235- self .data ['branch' ]),
239+ self .data ['branch' ], request = self .request ),
240+
236241 'revision' : lambda : RevisionResource ().get_via_uri (
237- self .data ['commitid' ])}.get (key , None )()
242+ self .data ['commitid' ],
243+ request = self .request )}.get (key , None )()
238244
239245 try :
240246 self .obj .value = float (self .data ['result_value' ])
@@ -299,7 +305,7 @@ def _check_data(self):
299305 # Check that the Environment exists
300306 try :
301307 self .obj .environment = EnvironmentResource ().get_via_uri (
302- self .data ['environment' ])
308+ self .data ['environment' ], request = self . request )
303309 except Environment .DoesNotExist :
304310 error_text = 'Environment: {0} not found in database.' .format (
305311 self .data ['environment' ])
@@ -400,7 +406,7 @@ def get_resource_uri(self, bundle_or_obj):
400406 def get_object_list (self , request ):
401407 results = Result .objects .all ()
402408
403- return [ResultBundle (obj = r ).obj for r in results ]
409+ return [ResultBundle (obj = r , request = request ).obj for r in results ]
404410
405411 def obj_get_list (self , request = None , ** kwargs ):
406412 """Return all benchmark results ever"""
@@ -440,8 +446,9 @@ def post_list(self, request, **kwargs):
440446 format = request .META .get ('CONTENT_TYPE' , 'application/json' )
441447 )
442448 deserialized = self .alter_deserialized_list_data (request , deserialized )
443- bundle = ResultBundle (** dict_strip_unicode_keys (deserialized ))
444- self .is_valid (bundle , request )
449+ bundle = ResultBundle (request = request ,
450+ ** dict_strip_unicode_keys (deserialized ))
451+ self .is_valid (bundle )
445452 updated_bundle = self .obj_create (bundle , request = request )
446453 return HttpCreated (location = self .get_resource_uri (updated_bundle ))
447454
0 commit comments