Content Profiles¶
Content profiles let you change the way how your content should be edited and what validation rules should apply.
Definition¶
You can specify custom profiles in server/data/content_types.json file.
Then you can sync it with database using cli command:
python manage.py app:initialize_data --entity-name content_types
In the file there should be list of profiles:
[
{"_id": "story", "label": "Story", "enabled": 1, ...},
{"_id": "snap", "label": "Snap", "enabled": 0, ...}
]
Available fields are:
_idstring- Profile id, its value will be set in
item.profilefield and will be available in output. labelstring- Label visible in the client.
descriptionstring- Optional profile description.
priorityint- Used for sorting in descending order.
enabledboolean- Flag if profile is enabled (visible in lists) or not.
schemadictSchema configuration for profile. There you can define validation rules for Item Schema fields:
"schema": { "headline": { "type": "string", "required": true, "maxlength": 120, }, "keywords": { "type": "list", "required": true, "allowed": ["sport", "news"] } }Keys are field names, and for each field you can specify:
typestring- One of
string,list,dict,integer,number. requiredboolean- If
true, field must be there and be non empty. minlength,maxlengthint- Minimum and maximum length allowed for
stringtype. allowedlist- List of allowed values for
stringorlisttype. schemadict- Validation rules for
dicttype items. nullableboolean- If True the value can be set to
null. regexstringRegex validation rule, eg.:
"regex": "[a-z]+"
editordictEditor configuration for profile, there you can set what fields will be visible and how these should be displayed:
"editor": { "headline": { "order": 1, "sdWidth": "full", "enabled": true }, "body_html": { "order": 5, "formatOptions": ["h2", "bold", "italic"], "enabled": true }, "ednote": { "enabled": false } }Rules for fields are:
orderint- Where the field is visible in the editor.
sdWidthstring- One of
full,halfandquarter. Fields are floating so there can be more on the same line as long as they fit there. enabledboolean- If
falsefield won’t be visible in the editor. formatOptionslistWhat format options should be available, only works with
body_htmlandabstractfields. For each there will be a button visible in the editor toolbar.h2bolditalicunderlinequoteanchorembedpictureremoveFormat
Available schema fields¶
These are fields you can use in your content profile:
-
class
apps.content_types.content_types.DefaultSchema¶ Default schema.
-
abstract= string¶ item abstract
-
anpa_category= list¶ category
-
anpa_take_key= string¶ anpa take key
body footer
-
body_html= string¶ item content
-
byline= string¶ byline
-
company_codes= list¶ company codes
-
dateline= dict¶ dateline - info about where news was written
-
ednote= string¶ editorial note
-
feature_media= any¶ embedded media in the item
item footer
-
genre= list¶ item genre
-
headline= string¶ headline
-
media_description= any¶ embedded media description
-
place= list¶ place where news happened
-
priority= integer¶ news item priority
-
sign_off= string¶ item sign off info
-
slugline= string¶ slugline
-
sms= string¶ sms version of an item
-
subject= list¶ subject
-
urgency= integer¶ news item urgency
-
Plain text profile¶
Before there are any content profiles defined for a desk there is one called Plain text.
Package profiles¶
Package profiles are not yet supported.