33
44from isimip_data .annotations .models import Annotation , Download , Figure , Reference
55from isimip_data .caveats .models import Caveat
6- from isimip_data .core .utils import get_file_base_url
76
87from .models import Dataset , File , Identifier , Resource
98
109
1110class DatasetFileSerializer (serializers .ModelSerializer ):
1211
1312 metadata_url = serializers .SerializerMethodField ()
14- file_url = serializers .SerializerMethodField ()
1513 rights = serializers .JSONField (source = 'rights_dict' )
1614
1715 class Meta :
@@ -28,17 +26,13 @@ class Meta:
2826 'url' ,
2927 'metadata_url' ,
3028 'file_url' ,
29+ 'json_url' ,
3130 'rights' ,
3231 'terms_of_use'
3332 )
3433
3534 def get_metadata_url (self , obj ):
36- return reverse ('file' , args = [obj .id ], request = self .context ['request' ])
37-
38- def get_file_url (self , obj ):
39- if obj .dataset .public :
40- base_url = get_file_base_url (self .context ['request' ])
41- return f'{ base_url } restricted/{ obj .path } ' if obj .dataset .restricted else f'{ base_url } { obj .path } '
35+ return reverse ('file' , args = [obj .id ], request = self .context .get ('request' ))
4236
4337
4438class DatasetResourceSerializer (serializers .ModelSerializer ):
@@ -204,11 +198,11 @@ class Meta:
204198 )
205199
206200 def get_metadata_url (self , obj ):
207- return reverse ('dataset' , args = [obj .id ], request = self .context [ 'request' ] )
201+ return reverse ('dataset' , args = [obj .id ], request = self .context . get ( 'request' ) )
208202
209203 def get_filelist_url (self , obj ):
210204 if obj .public :
211- return reverse ('dataset-detail-filelist' , args = [obj .id ], request = self .context [ 'request' ] )
205+ return reverse ('dataset-detail-filelist' , args = [obj .id ], request = self .context . get ( 'request' ) )
212206
213207 def get_caveats (self , obj ):
214208 if self .context .get ('request' ).GET .get ('caveats' ):
@@ -259,8 +253,6 @@ class FileSerializer(serializers.ModelSerializer):
259253 links = FileLinkSerializer (many = True )
260254 search_rank = serializers .FloatField (required = False , default = 0.0 )
261255 metadata_url = serializers .SerializerMethodField ()
262- file_url = serializers .SerializerMethodField ()
263- json_url = serializers .SerializerMethodField ()
264256 rights = serializers .JSONField (source = 'rights_dict' )
265257
266258 class Meta :
@@ -289,17 +281,7 @@ class Meta:
289281 )
290282
291283 def get_metadata_url (self , obj ):
292- return reverse ('file' , args = [obj .id ], request = self .context ['request' ])
293-
294- def get_file_url (self , obj ):
295- if obj .dataset .public :
296- base_url = get_file_base_url (self .context ['request' ])
297- return f'{ base_url } restricted/{ obj .path } ' if obj .dataset .restricted else f'{ base_url } { obj .path } '
298-
299- def get_json_url (self , obj ):
300- if obj .dataset .public :
301- base_url = get_file_base_url (self .context ['request' ])
302- return f'{ base_url } restricted/{ obj .json_path } ' if obj .dataset .restricted else f'{ base_url } { obj .json_path } '
284+ return reverse ('file' , args = [obj .id ], request = self .context .get ('request' ))
303285
304286
305287class ResourceIndexSerializer (serializers .ModelSerializer ):
@@ -319,17 +301,20 @@ class Meta:
319301 'previous_version' ,
320302 'new_version' ,
321303 'is_external' ,
304+ 'url' ,
322305 'resource_url' ,
323306 'creators_str' ,
324307 'publication_date'
325308 )
326309
327310 def get_resource_url (self , obj ):
328- return reverse ('resource' , args = [str (obj .doi )], request = self .context [ 'request' ] )
311+ return reverse ('resource' , args = [str (obj .doi )], request = self .context . get ( 'request' ) )
329312
330313
331314class ResourceSerializer (serializers .ModelSerializer ):
332315
316+ resource_url = serializers .SerializerMethodField ()
317+
333318 class Meta :
334319 model = Resource
335320 fields = (
@@ -348,9 +333,14 @@ class Meta:
348333 'previous_version' ,
349334 'new_version' ,
350335 'is_external' ,
336+ 'url' ,
337+ 'resource_url' ,
351338 'datacite' ,
352339 )
353340
341+ def get_resource_url (self , obj ):
342+ return reverse ('resource' , args = [str (obj .doi )], request = self .context .get ('request' ))
343+
354344
355345class IdentifierSerializer (serializers .ModelSerializer ):
356346
0 commit comments