| 
				
			 | 
			
			
				@@ -2,6 +2,7 @@ 
			 | 
		
	
		
			
			| 
				2
			 | 
			
				2
			 | 
			
			
				 import marshmallow 
			 | 
		
	
		
			
			| 
				3
			 | 
			
				3
			 | 
			
			
				 from marshmallow import post_load 
			 | 
		
	
		
			
			| 
				4
			 | 
			
				4
			 | 
			
			
				 from marshmallow.validate import OneOf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				5
			 | 
			
			
				+from marshmallow.validate import Range 
			 | 
		
	
		
			
			| 
				5
			 | 
			
				6
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				6
			 | 
			
				7
			 | 
			
			
				 from tracim.lib.utils.utils import DATETIME_FORMAT 
			 | 
		
	
		
			
			| 
				7
			 | 
			
				8
			 | 
			
			
				 from tracim.models.auth import Profile 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -79,15 +80,30 @@ class UserSchema(UserDigestSchema): 
			 | 
		
	
		
			
			| 
				79
			 | 
			
				80
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				80
			 | 
			
				81
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				81
			 | 
			
				82
			 | 
			
			
				 class UserIdPathSchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				82
			 | 
			
				
			 | 
			
			
				-    user_id = marshmallow.fields.Int(example=3, required=True) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				83
			 | 
			
			
				+    user_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				84
			 | 
			
			
				+        example=3, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				85
			 | 
			
			
				+        required=True, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				86
			 | 
			
			
				+        description='id of a valid user', 
			 | 
		
	
		
			
			| 
				
			 | 
			
				87
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				88
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				83
			 | 
			
				89
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				84
			 | 
			
				90
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				85
			 | 
			
				91
			 | 
			
			
				 class WorkspaceIdPathSchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				86
			 | 
			
				
			 | 
			
			
				-    workspace_id = marshmallow.fields.Int(example=4, required=True) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				92
			 | 
			
			
				+    workspace_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				93
			 | 
			
			
				+        example=4, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				94
			 | 
			
			
				+        required=True, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				95
			 | 
			
			
				+        description='id of a valid workspace', 
			 | 
		
	
		
			
			| 
				
			 | 
			
				96
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				97
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				87
			 | 
			
				98
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				88
			 | 
			
				99
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				89
			 | 
			
				100
			 | 
			
			
				 class ContentIdPathSchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				90
			 | 
			
				
			 | 
			
			
				-    content_id = marshmallow.fields.Int(example=6, required=True) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				101
			 | 
			
			
				+    content_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				102
			 | 
			
			
				+        example=6, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				103
			 | 
			
			
				+        required=True, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				104
			 | 
			
			
				+        description='id of a valid content', 
			 | 
		
	
		
			
			| 
				
			 | 
			
				105
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				106
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				91
			 | 
			
				107
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				92
			 | 
			
				108
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				93
			 | 
			
				109
			 | 
			
			
				 class WorkspaceAndContentIdPathSchema( 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -102,8 +118,9 @@ class WorkspaceAndContentIdPathSchema( 
			 | 
		
	
		
			
			| 
				102
			 | 
			
				118
			 | 
			
			
				 class CommentsPathSchema(WorkspaceAndContentIdPathSchema): 
			 | 
		
	
		
			
			| 
				103
			 | 
			
				119
			 | 
			
			
				     comment_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				104
			 | 
			
				120
			 | 
			
			
				         example=6, 
			 | 
		
	
		
			
			| 
				105
			 | 
			
				
			 | 
			
			
				-        description='id of a comment related to content content_id', 
			 | 
		
	
		
			
			| 
				106
			 | 
			
				
			 | 
			
			
				-        required=True 
			 | 
		
	
		
			
			| 
				
			 | 
			
				121
			 | 
			
			
				+        description='id of a valid comment related to content content_id', 
			 | 
		
	
		
			
			| 
				
			 | 
			
				122
			 | 
			
			
				+        required=True, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				123
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				107
			 | 
			
				124
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				108
			 | 
			
				125
			 | 
			
			
				     @post_load 
			 | 
		
	
		
			
			| 
				109
			 | 
			
				126
			 | 
			
			
				     def make_path_object(self, data): 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -118,19 +135,22 @@ class FilterContentQuerySchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				118
			 | 
			
				135
			 | 
			
			
				                     ' If not set, then return all contents.' 
			 | 
		
	
		
			
			| 
				119
			 | 
			
				136
			 | 
			
			
				                     ' If set to 0, then return root contents.' 
			 | 
		
	
		
			
			| 
				120
			 | 
			
				137
			 | 
			
			
				                     ' If set to another value, return all contents' 
			 | 
		
	
		
			
			| 
				121
			 | 
			
				
			 | 
			
			
				-                    ' directly included in the folder parent_id' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				138
			 | 
			
			
				+                    ' directly included in the folder parent_id', 
			 | 
		
	
		
			
			| 
				
			 | 
			
				139
			 | 
			
			
				+        validate=Range(min=0, error="Value must be positive or 0"), 
			 | 
		
	
		
			
			| 
				122
			 | 
			
				140
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				123
			 | 
			
				141
			 | 
			
			
				     show_archived = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				124
			 | 
			
				142
			 | 
			
			
				         example=0, 
			 | 
		
	
		
			
			| 
				125
			 | 
			
				143
			 | 
			
			
				         default=0, 
			 | 
		
	
		
			
			| 
				126
			 | 
			
				144
			 | 
			
			
				         description='if set to 1, then show archived contents.' 
			 | 
		
	
		
			
			| 
				127
			 | 
			
				
			 | 
			
			
				-                    ' Default is 0 - hide archived content' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				145
			 | 
			
			
				+                    ' Default is 0 - hide archived content', 
			 | 
		
	
		
			
			| 
				
			 | 
			
				146
			 | 
			
			
				+        validate=Range(min=0, max=1, error="Value must be 0 or 1"), 
			 | 
		
	
		
			
			| 
				128
			 | 
			
				147
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				129
			 | 
			
				148
			 | 
			
			
				     show_deleted = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				130
			 | 
			
				149
			 | 
			
			
				         example=0, 
			 | 
		
	
		
			
			| 
				131
			 | 
			
				150
			 | 
			
			
				         default=0, 
			 | 
		
	
		
			
			| 
				132
			 | 
			
				151
			 | 
			
			
				         description='if set to 1, then show deleted contents.' 
			 | 
		
	
		
			
			| 
				133
			 | 
			
				
			 | 
			
			
				-                    ' Default is 0 - hide deleted content' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				152
			 | 
			
			
				+                    ' Default is 0 - hide deleted content', 
			 | 
		
	
		
			
			| 
				
			 | 
			
				153
			 | 
			
			
				+        validate=Range(min=0, max=1, error="Value must be 0 or 1"), 
			 | 
		
	
		
			
			| 
				134
			 | 
			
				154
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				135
			 | 
			
				155
			 | 
			
			
				     show_active = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				136
			 | 
			
				156
			 | 
			
			
				         example=1, 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -140,7 +160,8 @@ class FilterContentQuerySchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				140
			 | 
			
				160
			 | 
			
			
				                     ' Note: active content are content ' 
			 | 
		
	
		
			
			| 
				141
			 | 
			
				161
			 | 
			
			
				                     'that is neither archived nor deleted. ' 
			 | 
		
	
		
			
			| 
				142
			 | 
			
				162
			 | 
			
			
				                     'The reason for this parameter to exist is for example ' 
			 | 
		
	
		
			
			| 
				143
			 | 
			
				
			 | 
			
			
				-                    'to allow to show only archived documents' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				163
			 | 
			
			
				+                    'to allow to show only archived documents', 
			 | 
		
	
		
			
			| 
				
			 | 
			
				164
			 | 
			
			
				+        validate=Range(min=0, max=1, error="Value must be 0 or 1"), 
			 | 
		
	
		
			
			| 
				144
			 | 
			
				165
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				145
			 | 
			
				166
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				146
			 | 
			
				167
			 | 
			
			
				     @post_load 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -204,7 +225,10 @@ class WorkspaceMenuEntrySchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				204
			 | 
			
				225
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				205
			 | 
			
				226
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				206
			 | 
			
				227
			 | 
			
			
				 class WorkspaceDigestSchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				207
			 | 
			
				
			 | 
			
			
				-    workspace_id = marshmallow.fields.Int(example=4) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				228
			 | 
			
			
				+    workspace_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				229
			 | 
			
			
				+        example=4, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				230
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				231
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				208
			 | 
			
				232
			 | 
			
			
				     slug = marshmallow.fields.String(example='intranet') 
			 | 
		
	
		
			
			| 
				209
			 | 
			
				233
			 | 
			
			
				     label = marshmallow.fields.String(example='Intranet') 
			 | 
		
	
		
			
			| 
				210
			 | 
			
				234
			 | 
			
			
				     sidebar_entries = marshmallow.fields.Nested( 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -228,8 +252,14 @@ class WorkspaceMemberSchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				228
			 | 
			
				252
			 | 
			
			
				         example='contributor', 
			 | 
		
	
		
			
			| 
				229
			 | 
			
				253
			 | 
			
			
				         validate=OneOf(UserRoleInWorkspace.get_all_role_slug()) 
			 | 
		
	
		
			
			| 
				230
			 | 
			
				254
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				231
			 | 
			
				
			 | 
			
			
				-    user_id = marshmallow.fields.Int(example=3) 
			 | 
		
	
		
			
			| 
				232
			 | 
			
				
			 | 
			
			
				-    workspace_id = marshmallow.fields.Int(example=4) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				255
			 | 
			
			
				+    user_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				256
			 | 
			
			
				+        example=3, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				257
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				258
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				259
			 | 
			
			
				+    workspace_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				260
			 | 
			
			
				+        example=4, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				261
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				262
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				233
			 | 
			
				263
			 | 
			
			
				     user = marshmallow.fields.Nested( 
			 | 
		
	
		
			
			| 
				234
			 | 
			
				264
			 | 
			
			
				         UserSchema(only=('public_name', 'avatar_url')) 
			 | 
		
	
		
			
			| 
				235
			 | 
			
				265
			 | 
			
			
				     ) 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -318,11 +348,13 @@ class ContentMoveSchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				318
			 | 
			
				348
			 | 
			
			
				         description='id of the new parent content id.', 
			 | 
		
	
		
			
			| 
				319
			 | 
			
				349
			 | 
			
			
				         allow_none=True, 
			 | 
		
	
		
			
			| 
				320
			 | 
			
				350
			 | 
			
			
				         required=True, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				351
			 | 
			
			
				+        validate=Range(min=0, error="Value must be positive or 0"), 
			 | 
		
	
		
			
			| 
				321
			 | 
			
				352
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				322
			 | 
			
				353
			 | 
			
			
				     new_workspace_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				323
			 | 
			
				354
			 | 
			
			
				         example=2, 
			 | 
		
	
		
			
			| 
				324
			 | 
			
				355
			 | 
			
			
				         description='id of the new workspace id.', 
			 | 
		
	
		
			
			| 
				325
			 | 
			
				
			 | 
			
			
				-        required=True 
			 | 
		
	
		
			
			| 
				
			 | 
			
				356
			 | 
			
			
				+        required=True, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				357
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				326
			 | 
			
				358
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				327
			 | 
			
				359
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				328
			 | 
			
				360
			 | 
			
			
				     @post_load 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -346,15 +378,20 @@ class ContentCreationSchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				346
			 | 
			
				378
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				347
			 | 
			
				379
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				348
			 | 
			
				380
			 | 
			
			
				 class ContentDigestSchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				349
			 | 
			
				
			 | 
			
			
				-    content_id = marshmallow.fields.Int(example=6) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				381
			 | 
			
			
				+    content_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				382
			 | 
			
			
				+        example=6, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				383
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				384
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				350
			 | 
			
				385
			 | 
			
			
				     slug = marshmallow.fields.Str(example='intervention-report-12') 
			 | 
		
	
		
			
			| 
				351
			 | 
			
				386
			 | 
			
			
				     parent_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				352
			 | 
			
				387
			 | 
			
			
				         example=34, 
			 | 
		
	
		
			
			| 
				353
			 | 
			
				388
			 | 
			
			
				         allow_none=True, 
			 | 
		
	
		
			
			| 
				354
			 | 
			
				
			 | 
			
			
				-        default=None 
			 | 
		
	
		
			
			| 
				
			 | 
			
				389
			 | 
			
			
				+        default=None, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				390
			 | 
			
			
				+        validate=Range(min=0, error="Value must be positive or 0"), 
			 | 
		
	
		
			
			| 
				355
			 | 
			
				391
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				356
			 | 
			
				392
			 | 
			
			
				     workspace_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				357
			 | 
			
				393
			 | 
			
			
				         example=19, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				394
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				358
			 | 
			
				395
			 | 
			
			
				     ) 
			 | 
		
	
		
			
			| 
				359
			 | 
			
				396
			 | 
			
			
				     label = marshmallow.fields.Str(example='Intervention Report 12') 
			 | 
		
	
		
			
			| 
				360
			 | 
			
				397
			 | 
			
			
				     content_type = marshmallow.fields.Str( 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -421,8 +458,16 @@ class TextBasedContentSchema(ContentSchema, TextBasedDataAbstractSchema): 
			 | 
		
	
		
			
			| 
				421
			 | 
			
				458
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				422
			 | 
			
				459
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				423
			 | 
			
				460
			 | 
			
			
				 class RevisionSchema(ContentDigestSchema): 
			 | 
		
	
		
			
			| 
				424
			 | 
			
				
			 | 
			
			
				-    comment_ids = marshmallow.fields.List(marshmallow.fields.Int(example=4)) 
			 | 
		
	
		
			
			| 
				425
			 | 
			
				
			 | 
			
			
				-    revision_id = marshmallow.fields.Int(example=12) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				461
			 | 
			
			
				+    comment_ids = marshmallow.fields.List( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				462
			 | 
			
			
				+        marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				463
			 | 
			
			
				+            example=4, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				464
			 | 
			
			
				+            validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				465
			 | 
			
			
				+        ) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				466
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				467
			 | 
			
			
				+    revision_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				468
			 | 
			
			
				+        example=12, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				469
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				470
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				426
			 | 
			
				471
			 | 
			
			
				     created = marshmallow.fields.DateTime( 
			 | 
		
	
		
			
			| 
				427
			 | 
			
				472
			 | 
			
			
				         format=DATETIME_FORMAT, 
			 | 
		
	
		
			
			| 
				428
			 | 
			
				473
			 | 
			
			
				         description='Content creation date', 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -435,8 +480,14 @@ class TextBasedRevisionSchema(RevisionSchema, TextBasedDataAbstractSchema): 
			 | 
		
	
		
			
			| 
				435
			 | 
			
				480
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				436
			 | 
			
				481
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				437
			 | 
			
				482
			 | 
			
			
				 class CommentSchema(marshmallow.Schema): 
			 | 
		
	
		
			
			| 
				438
			 | 
			
				
			 | 
			
			
				-    content_id = marshmallow.fields.Int(example=6) 
			 | 
		
	
		
			
			| 
				439
			 | 
			
				
			 | 
			
			
				-    parent_id = marshmallow.fields.Int(example=34) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				483
			 | 
			
			
				+    content_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				484
			 | 
			
			
				+        example=6, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				485
			 | 
			
			
				+        validate=Range(min=1, error="Value must be greater than 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				486
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				487
			 | 
			
			
				+    parent_id = marshmallow.fields.Int( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				488
			 | 
			
			
				+        example=34, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				489
			 | 
			
			
				+        validate=Range(min=0, error="Value must be positive or 0"), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				490
			 | 
			
			
				+    ) 
			 | 
		
	
		
			
			| 
				440
			 | 
			
				491
			 | 
			
			
				     raw_content = marshmallow.fields.String( 
			 | 
		
	
		
			
			| 
				441
			 | 
			
				492
			 | 
			
			
				         example='<p>This is just an html comment !</p>' 
			 | 
		
	
		
			
			| 
				442
			 | 
			
				493
			 | 
			
			
				     ) 
			 |