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,17 @@ 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 ),
228228 'executable' : lambda : ExecutableResource ().get_via_uri (
229- self .data ['executable' ]),
229+ self .data ['executable' ], request = self . request ),
230230 'benchmark' : lambda : BenchmarkResource ().get_via_uri (
231- self .data ['benchmark' ]),
231+ self .data ['benchmark' ], request = self . request ),
232232 'environment' : lambda : EnvironmentResource ().get_via_uri (
233- self .data ['environment' ]),
233+ self .data ['environment' ], request = self . request ),
234234 'branch' : lambda : BranchResource ().get_via_uri (
235- self .data ['branch' ]),
235+ self .data ['branch' ], request = self . request ),
236236 'revision' : lambda : RevisionResource ().get_via_uri (
237- self .data ['commitid' ])}.get (key , None )()
237+ self .data ['commitid' ], request = self . request )}.get (key , None )()
238238
239239 try :
240240 self .obj .value = float (self .data ['result_value' ])
@@ -299,7 +299,7 @@ def _check_data(self):
299299 # Check that the Environment exists
300300 try :
301301 self .obj .environment = EnvironmentResource ().get_via_uri (
302- self .data ['environment' ])
302+ self .data ['environment' ], request = self . request )
303303 except Environment .DoesNotExist :
304304 error_text = 'Environment: {0} not found in database.' .format (
305305 self .data ['environment' ])
@@ -400,7 +400,7 @@ def get_resource_uri(self, bundle_or_obj):
400400 def get_object_list (self , request ):
401401 results = Result .objects .all ()
402402
403- return [ResultBundle (obj = r ).obj for r in results ]
403+ return [ResultBundle (obj = r , request = request ).obj for r in results ]
404404
405405 def obj_get_list (self , request = None , ** kwargs ):
406406 """Return all benchmark results ever"""
@@ -440,8 +440,8 @@ def post_list(self, request, **kwargs):
440440 format = request .META .get ('CONTENT_TYPE' , 'application/json' )
441441 )
442442 deserialized = self .alter_deserialized_list_data (request , deserialized )
443- bundle = ResultBundle (** dict_strip_unicode_keys (deserialized ))
444- self .is_valid (bundle , request )
443+ bundle = ResultBundle (request = request , ** dict_strip_unicode_keys (deserialized ))
444+ self .is_valid (bundle )
445445 updated_bundle = self .obj_create (bundle , request = request )
446446 return HttpCreated (location = self .get_resource_uri (updated_bundle ))
447447
0 commit comments