57
57
Funder ,
58
58
)
59
59
from geonode .groups .models import GroupCategory , GroupProfile
60
- from geonode .base .api .fields import ComplexDynamicRelationField , RelatedIdentifierDynamicRelationField , FundersDynamicRelationField
60
+ from geonode .base .api .fields import (
61
+ ComplexDynamicRelationField ,
62
+ RelatedIdentifierDynamicRelationField ,
63
+ FundersDynamicRelationField ,
64
+ )
61
65
from geonode .utils import build_absolute_uri
62
66
from geonode .security .utils import get_resources_with_perms
63
67
from geonode .resource .models import ExecutionRequest
66
70
67
71
logger = logging .getLogger (__name__ )
68
72
73
+
69
74
class BaseDynamicModelSerializer (DynamicModelSerializer ):
70
75
def to_representation (self , instance ):
71
76
data = super ().to_representation (instance )
@@ -159,7 +164,6 @@ def to_representation(self, value):
159
164
return {"name" : value .name , "slug" : value .slug }
160
165
161
166
162
-
163
167
class _ThesaurusKeywordSerializerMixIn :
164
168
def to_representation (self , value ):
165
169
_i18n = {}
@@ -183,7 +187,7 @@ class Meta:
183
187
model = ThesaurusKeyword
184
188
name = "ThesaurusKeyword"
185
189
fields = ("alt_label" ,)
186
-
190
+
187
191
188
192
class SimpleRegionSerializer (DynamicModelSerializer ):
189
193
class Meta :
@@ -197,7 +201,7 @@ class Meta:
197
201
model = RelatedIdentifierType
198
202
name = "RelatedIdentifierType"
199
203
fields = ("label" , "description" )
200
-
204
+
201
205
202
206
class SimpleRelationType (DynamicModelSerializer ):
203
207
class Meta :
@@ -214,8 +218,8 @@ class Meta:
214
218
215
219
related_identifier_type = DynamicRelationField (SimpleRelatedIdentifierType , embed = True , many = False )
216
220
relation_type = DynamicRelationField (SimpleRelationType , embed = True , many = False )
217
-
218
-
221
+
222
+
219
223
class FundingReferenceSerializer (DynamicModelSerializer ):
220
224
class Meta :
221
225
model = FundingReference
@@ -236,7 +240,14 @@ class SimpleRelatedProjectSerializer(DynamicModelSerializer):
236
240
class Meta :
237
241
model = RelatedProject
238
242
name = "RelatedProject"
239
- fields = ("label" ,"display_name" )
243
+ fields = ("label" , "display_name" )
244
+
245
+
246
+ class SimpleResourceSerializer (DynamicModelSerializer ):
247
+ class Meta :
248
+ model = ResourceBase
249
+ name = "resource"
250
+ fields = ("pk" , "title" ) # TODO add UUID
240
251
241
252
242
253
class SimpleTopicCategorySerializer (DynamicModelSerializer ):
@@ -357,7 +368,7 @@ class Meta:
357
368
model = get_user_model ()
358
369
name = "user"
359
370
view_name = "users-list"
360
- fields = ("pk" , "username" , "first_name" , "last_name" , "avatar" , "perms" , "is_superuser" , "is_staff" )
371
+ fields = ("pk" , "username" , "first_name" , "last_name" , "avatar" , "perms" , "is_superuser" , "is_staff" , "orcid_identifier" )
361
372
362
373
@classmethod
363
374
def setup_eager_loading (cls , queryset ):
@@ -483,6 +494,7 @@ def __init__(self, *args, **kwargs):
483
494
self .fields ["title_translated" ] = serializers .CharField ()
484
495
485
496
self .fields ["abstract" ] = serializers .CharField (required = False )
497
+ # BONARES ELEMENTS
486
498
self .fields ["abstract_translated" ] = serializers .CharField (required = False )
487
499
488
500
self .fields ["subtitle" ] = serializers .CharField (required = False )
@@ -493,13 +505,30 @@ def __init__(self, *args, **kwargs):
493
505
self .fields ["other_description" ] = serializers .CharField (required = False )
494
506
495
507
self .fields ["related_identifier" ] = RelatedIdentifierDynamicRelationField (
496
- SimpleRelatedIdentifierSerializer , embed = True , many = True )
497
- self . fields [ "funders" ] = FundersDynamicRelationField (
498
- SimpleFunderSerializer , embed = True , many = True )
508
+ SimpleRelatedIdentifierSerializer , embed = True , many = True
509
+ )
510
+ self . fields [ "funders" ] = FundersDynamicRelationField ( SimpleFunderSerializer , embed = True , many = True )
499
511
self .fields ["related_projects" ] = ComplexDynamicRelationField (
500
- SimpleRelatedProjectSerializer , embed = True , many = True )
512
+ SimpleRelatedProjectSerializer , embed = True , many = True
513
+ )
514
+ self .fields ["conformity_results" ] = serializers .CharField (required = False )
515
+ self .fields ["conformity_explanation" ] = serializers .CharField (required = False )
516
+ self .fields ["parent_identifier" ] = ComplexDynamicRelationField (
517
+ SimpleResourceSerializer , embed = True , many = False , required = False
518
+ )
519
+ self .fields ["date_available" ] = serializers .DateField (required = True )
520
+ self .fields ["date_updated" ] = serializers .DateField (required = True )
521
+ self .fields ["date_created" ] = serializers .DateField (required = True )
522
+ self .fields ["date_issued" ] = serializers .DateField (required = True )
523
+
524
+ self .fields ["date_accepted" ] = serializers .DateField (required = False )
525
+ self .fields ["date_collected" ] = serializers .DateField (required = False )
526
+ self .fields ["date_copyrighted" ] = serializers .DateField (required = False )
527
+ self .fields ["date_submitted" ] = serializers .DateField (required = False )
528
+ self .fields ["date_valid" ] = serializers .DateField (required = False )
501
529
502
-
530
+ self .fields ["metadata_standard_name" ] = serializers .CharField (read_only = True )
531
+ self .fields ["metadata_standard_version" ] = serializers .CharField (read_only = True )
503
532
504
533
self .fields ["attribution" ] = serializers .CharField (required = False )
505
534
self .fields ["doi" ] = serializers .CharField (required = False )
@@ -540,7 +569,9 @@ def __init__(self, *args, **kwargs):
540
569
541
570
self .fields ["embed_url" ] = EmbedUrlField (required = False )
542
571
self .fields ["thumbnail_url" ] = ThumbnailUrlField (read_only = True )
543
- self .fields ["keywords" ] = ComplexDynamicRelationField (SimpleHierarchicalKeywordSerializer , embed = False , many = True )
572
+ self .fields ["keywords" ] = ComplexDynamicRelationField (
573
+ SimpleHierarchicalKeywordSerializer , embed = False , many = True
574
+ )
544
575
self .fields ["tkeywords" ] = ComplexDynamicRelationField (SimpleThesaurusKeywordSerializer , embed = False , many = True )
545
576
self .fields ["regions" ] = DynamicRelationField (SimpleRegionSerializer , embed = True , many = True , read_only = True )
546
577
self .fields ["category" ] = ComplexDynamicRelationField (SimpleTopicCategorySerializer , embed = True , many = False )
@@ -552,7 +583,7 @@ def __init__(self, *args, **kwargs):
552
583
)
553
584
self .fields ["license" ] = ComplexDynamicRelationField (LicenseSerializer , embed = True , many = False )
554
585
self .fields ["spatial_representation_type" ] = ComplexDynamicRelationField (
555
- SpatialRepresentationTypeSerializer , embed = True , many = False
586
+ SpatialRepresentationTypeSerializer , embed = True , many = False
556
587
)
557
588
self .fields ["blob" ] = serializers .JSONField (required = False , write_only = True )
558
589
self .fields ["is_copyable" ] = serializers .BooleanField (read_only = True )
@@ -594,6 +625,20 @@ class Meta:
594
625
"other_description" ,
595
626
"related_identifier" ,
596
627
"funders" ,
628
+ "conformity_results" ,
629
+ "conformity_explanation" ,
630
+ "parent_identifier" ,
631
+ "date_accepted" ,
632
+ "date_available" ,
633
+ "date_collected" ,
634
+ "date_copyrighted" ,
635
+ "date_created" ,
636
+ "date_issued" ,
637
+ "date_submitted" ,
638
+ "date_updated" ,
639
+ "date_valid" ,
640
+ "metadata_standard_name" ,
641
+ "metadata_standard_version" ,
597
642
"doi" ,
598
643
"bbox_polygon" ,
599
644
"ll_bbox_polygon" ,
@@ -782,8 +827,8 @@ class Meta:
782
827
count_type = "category"
783
828
view_name = "categories-list"
784
829
fields = "__all__"
785
-
786
-
830
+
831
+
787
832
class RelationTypeSerializer (DynamicModelSerializer ):
788
833
class Meta :
789
834
name = "relationtypes"
@@ -807,13 +852,15 @@ class Meta:
807
852
count_type = "fundingreferences"
808
853
fields = "__all__"
809
854
855
+
810
856
class RelatedProjectSerializer (DynamicModelSerializer ):
811
857
class Meta :
812
858
name = "relatedprojects"
813
859
model = RelatedProject
814
860
count_type = "relatedprojects"
815
861
fields = "__all__"
816
862
863
+
817
864
class OwnerSerializer (BaseResourceCountSerializer ):
818
865
class Meta :
819
866
name = "owners"
0 commit comments