@@ -48,6 +48,7 @@ def __getitem__(self, item):
4848 return result
4949
5050 def __str__ (self ):
51+ print ('TagList str: ' + str (self ))
5152 if self .pretty_print :
5253 return json .dumps (
5354 self , sort_keys = True , indent = 4 , separators = (',' , ': ' ))
@@ -78,6 +79,7 @@ def __init__(self, **kwargs):
7879 self .pretty_print = pretty_print
7980
8081 def to_internal_value (self , data ):
82+ print ('to_internal_value: ' + str (data ))
8183 if isinstance (data , six .string_types ):
8284 if not data :
8385 data = []
@@ -95,18 +97,23 @@ def to_internal_value(self, data):
9597
9698 self .child .run_validation (s )
9799
98- return data
100+ return ',' .join (data )
101+ # return data
99102
100103 def to_representation (self , value ):
104+ print ('to_representation: ' + str (value ))
101105 if not isinstance (value , TagList ):
106+ print ('to_representation2: ' + str (value ))
102107 if not isinstance (value , list ):
108+ print ('to_representation3: ' + str (value ))
103109 # this will trigger when a queryset is found...
104110 if self .order_by :
105111 tags = value .all ().order_by (* self .order_by )
106112 else :
107113 tags = value .all ()
108114 value = [tag .name for tag in tags ]
109115 elif len (value ) > 0 and isinstance (value [0 ], Tag ):
116+ print ('to_representation4: ' + str (value ))
110117 # .. but sometimes the queryset already has been converted into a list, i.e. by prefetch_related
111118 tags = value
112119 value = [tag .name for tag in tags ]
@@ -119,6 +126,7 @@ def to_representation(self, value):
119126
120127class TaggitSerializer (serializers .Serializer ):
121128 def create (self , validated_data ):
129+ print ('create!' )
122130 to_be_tagged , validated_data = self ._pop_tags (validated_data )
123131
124132 tag_object = super (TaggitSerializer , self ).create (validated_data )
@@ -134,13 +142,21 @@ def update(self, instance, validated_data):
134142 return self ._save_tags (tag_object , to_be_tagged )
135143
136144 def _save_tags (self , tag_object , tags ):
145+ print ('save tags: ' + str (tags ))
146+ print ('tag_object: ' + str (tag_object ))
147+ print ('tag_object.pk: ' + str (tag_object .pk ))
137148 for key in list (tags .keys ()):
149+ print ('save: ' + str (key ))
138150 tag_values = tags .get (key )
139- tag_object .tags = ", " .join (tag_values )
151+ # tag_object.tags = ", ".join(tag_values)
152+ tag_object .tags = tag_values
153+ print ('tag_object.tags: ' + str (tag_object .tags ))
154+ tag_object .save ()
140155
141156 return tag_object
142157
143158 def _pop_tags (self , validated_data ):
159+ print ('pop tags: ' + str (validated_data ))
144160 to_be_tagged = {}
145161
146162 for key in list (self .fields .keys ()):
@@ -323,11 +339,15 @@ class Meta:
323339 fields = '__all__'
324340
325341
342+ # class ProductSerializer(serializers.ModelSerializer):
326343class ProductSerializer (TaggitSerializer , serializers .ModelSerializer ):
327344 findings_count = serializers .SerializerMethodField ()
328345 findings_list = serializers .SerializerMethodField ()
329346
330347 tags = TagListSerializerField (required = False )
348+ # import tagulous.serializers.json.Serializer as tagulous_json_serializer
349+ # import tagulous.serializers.json
350+ # tags = tagulous.serializers.json.Serializer()
331351 product_meta = ProductMetaSerializer (read_only = True , many = True )
332352
333353 class Meta :
@@ -354,8 +374,9 @@ class Meta:
354374 }
355375
356376
357- class EngagementSerializer (TaggitSerializer , serializers .ModelSerializer ):
358- tags = TagListSerializerField (required = False )
377+ # class EngagementSerializer(TaggitSerializer, serializers.ModelSerializer):
378+ class EngagementSerializer (serializers .ModelSerializer ):
379+ # tags = TagListSerializerField(required=False)
359380
360381 class Meta :
361382 model = Engagement
@@ -441,8 +462,9 @@ def create(self, validated_data):
441462 return status
442463
443464
444- class EndpointSerializer (TaggitSerializer , serializers .ModelSerializer ):
445- tags = TagListSerializerField (required = False )
465+ # class EndpointSerializer(TaggitSerializer, serializers.ModelSerializer):
466+ class EndpointSerializer (serializers .ModelSerializer ):
467+ # tags = TagListSerializerField(required=False)
446468
447469 class Meta :
448470 model = Endpoint
@@ -575,8 +597,9 @@ class Meta:
575597 fields = '__all__'
576598
577599
578- class TestSerializer (TaggitSerializer , serializers .ModelSerializer ):
579- tags = TagListSerializerField (required = False )
600+ # class TestSerializer(TaggitSerializer, serializers.ModelSerializer):
601+ class TestSerializer (serializers .ModelSerializer ):
602+ # tags = TagListSerializerField(required=False)
580603 test_type_name = serializers .ReadOnlyField ()
581604
582605 class Meta :
@@ -589,23 +612,25 @@ def build_relational_field(self, field_name, relation_info):
589612 return super ().build_relational_field (field_name , relation_info )
590613
591614
592- class TestCreateSerializer (TaggitSerializer , serializers .ModelSerializer ):
615+ # class TestCreateSerializer(TaggitSerializer, serializers.ModelSerializer):
616+ class TestCreateSerializer (serializers .ModelSerializer ):
593617 engagement = serializers .PrimaryKeyRelatedField (
594618 queryset = Engagement .objects .all ())
595619 notes = serializers .PrimaryKeyRelatedField (
596620 allow_null = True ,
597621 default = [],
598622 queryset = Notes .objects .all (),
599623 many = True )
600- tags = TagListSerializerField (required = False )
624+ # tags = TagListSerializerField(required=False)
601625
602626 class Meta :
603627 model = Test
604628 fields = '__all__'
605629
606630
607- class TestTypeSerializer (TaggitSerializer , serializers .ModelSerializer ):
608- tags = TagListSerializerField (required = False )
631+ # class TestTypeSerializer(TaggitSerializer, serializers.ModelSerializer):
632+ class TestTypeSerializer (serializers .ModelSerializer ):
633+ # tags = TagListSerializerField(required=False)
609634
610635 class Meta :
611636 model = Test_Type
@@ -684,9 +709,10 @@ class Meta:
684709 fields = ["id" , "title" , "test_type" , "engagement" , "environment" ]
685710
686711
687- class FindingSerializer (TaggitSerializer , serializers .ModelSerializer ):
712+ # class FindingSerializer(TaggitSerializer, serializers.ModelSerializer):
713+ class FindingSerializer (serializers .ModelSerializer ):
688714 images = FindingImageSerializer (many = True , read_only = True )
689- tags = TagListSerializerField (required = False )
715+ # tags = TagListSerializerField(required=False)
690716 request_response = serializers .SerializerMethodField ()
691717 accepted_risks = RiskAcceptanceSerializer (many = True , read_only = True , source = 'risk_acceptance_set' )
692718 push_to_jira = serializers .BooleanField (default = False )
@@ -726,7 +752,7 @@ def get_display_status(self, obj):
726752 # Overriding this to push add Push to JIRA functionality
727753 def update (self , instance , validated_data ):
728754 # remove tags from validated data and store them seperately
729- to_be_tagged , validated_data = self ._pop_tags (validated_data )
755+ # to_be_tagged, validated_data = self._pop_tags(validated_data)
730756
731757 # pop push_to_jira so it won't get send to the model as a field
732758 # TODO: JIRA can we remove this is_push_all_issues, already checked in apiv2 viewset?
@@ -754,8 +780,9 @@ def update(self, instance, validated_data):
754780 instance .save (push_to_jira = push_to_jira )
755781
756782 # not sure why we are returning a tag_object, but don't want to change too much now as we're just fixing a bug
757- tag_object = self ._save_tags (instance , to_be_tagged )
758- return tag_object
783+ # tag_object = self._save_tags(instance, to_be_tagged)
784+ # return tag_object
785+ return instance
759786
760787 def validate (self , data ):
761788 if self .context ['request' ].method == 'PATCH' :
@@ -792,7 +819,8 @@ def get_request_response(self, obj):
792819 return serialized_burps .data
793820
794821
795- class FindingCreateSerializer (TaggitSerializer , serializers .ModelSerializer ):
822+ # class FindingCreateSerializer(TaggitSerializer, serializers.ModelSerializer):
823+ class FindingCreateSerializer (serializers .ModelSerializer ):
796824 notes = serializers .PrimaryKeyRelatedField (
797825 read_only = True ,
798826 allow_null = True ,
@@ -807,7 +835,7 @@ class FindingCreateSerializer(TaggitSerializer, serializers.ModelSerializer):
807835 url = serializers .CharField (
808836 allow_null = True ,
809837 default = None )
810- tags = TagListSerializerField (required = False )
838+ # tags = TagListSerializerField(required=False)
811839 push_to_jira = serializers .BooleanField (default = False )
812840
813841 class Meta :
@@ -820,7 +848,7 @@ class Meta:
820848 # Overriding this to push add Push to JIRA functionality
821849 def create (self , validated_data ):
822850 # remove tags from validated data and store them seperately
823- to_be_tagged , validated_data = self ._pop_tags (validated_data )
851+ # to_be_tagged, validated_data = self._pop_tags(validated_data)
824852
825853 # pop push_to_jira so it won't get send to the model as a field
826854 push_to_jira = validated_data .pop ('push_to_jira' )
@@ -844,8 +872,9 @@ def create(self, validated_data):
844872 new_finding .save (push_to_jira = push_to_jira )
845873
846874 # not sure why we are returning a tag_object, but don't want to change too much now as we're just fixing a bug
847- tag_object = self ._save_tags (new_finding , to_be_tagged )
848- return tag_object
875+ # tag_object = self._save_tags(new_finding, to_be_tagged)
876+ # return tag_object
877+ return instance
849878
850879 def validate (self , data ):
851880 if ((data ['active' ] or data ['verified' ]) and data ['duplicate' ]):
@@ -923,7 +952,8 @@ class Meta:
923952 fields = '__all__'
924953
925954
926- class ImportScanSerializer (TaggitSerializer , serializers .Serializer ):
955+ # class ImportScanSerializer(TaggitSerializer, serializers.Serializer):
956+ class ImportScanSerializer (serializers .Serializer ):
927957 scan_date = serializers .DateField (default = datetime .date .today )
928958
929959 minimum_severity = serializers .ChoiceField (
@@ -944,7 +974,7 @@ class ImportScanSerializer(TaggitSerializer, serializers.Serializer):
944974 allow_null = True ,
945975 default = None ,
946976 queryset = User .objects .all ())
947- tags = TagListSerializerField (required = False )
977+ # tags = TagListSerializerField(required=False)
948978 close_old_findings = serializers .BooleanField (required = False , default = False )
949979 push_to_jira = serializers .BooleanField (default = False )
950980
@@ -992,8 +1022,8 @@ def save(self, push_to_jira=False):
9921022
9931023 test .engagement .save ()
9941024
995- if 'tags' in data :
996- test .tags = ' ' .join (data ['tags' ])
1025+ # if 'tags' in data:
1026+ # test.tags = ' '.join(data['tags'])
9971027 try :
9981028 parser = import_parser_factory (data .get ('file' , None ),
9991029 test ,
@@ -1150,7 +1180,8 @@ def validate_scan_data(self, value):
11501180 return value
11511181
11521182
1153- class ReImportScanSerializer (TaggitSerializer , serializers .Serializer ):
1183+ # class ReImportScanSerializer(TaggitSerializer, serializers.Serializer):
1184+ class ReImportScanSerializer (serializers .Serializer ):
11541185 scan_date = serializers .DateField ()
11551186 minimum_severity = serializers .ChoiceField (
11561187 choices = SEVERITY_CHOICES ,
@@ -1462,8 +1493,8 @@ class ReportGenerateSerializer(serializers.Serializer):
14621493 finding_notes = FindingToNotesSerializer (many = True , allow_null = True , required = False )
14631494
14641495
1465- class TagSerializer (serializers .Serializer ):
1466- tags = TagListSerializerField (required = True )
1496+ # class TagSerializer(serializers.Serializer):
1497+ # tags = TagListSerializerField(required=True)
14671498
14681499
14691500class SystemSettingsSerializer (serializers .Serializer ):
0 commit comments