wagtail 6.3.1__py3-none-any.whl → 6.3.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wagtail/__init__.py +1 -1
- wagtail/admin/locale/gl/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/gl/LC_MESSAGES/djangojs.po +5 -5
- wagtail/admin/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/pt_BR/LC_MESSAGES/django.po +29 -0
- wagtail/admin/static/wagtailadmin/css/core.css +1 -1
- wagtail/admin/static/wagtailadmin/css/panels/draftail.css +1 -1
- wagtail/admin/static/wagtailadmin/css/panels/streamfield.css +1 -1
- wagtail/admin/userbar.py +1 -0
- wagtail/blocks/migrations/operations.py +10 -10
- wagtail/blocks/stream_block.py +1 -1
- wagtail/contrib/forms/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/gl/LC_MESSAGES/django.po +4 -4
- wagtail/contrib/forms/tests/test_models.py +7 -5
- wagtail/contrib/frontend_cache/backends/cloudfront.py +1 -1
- wagtail/contrib/frontend_cache/tests.py +1 -1
- wagtail/images/blocks.py +8 -0
- wagtail/images/tests/test_blocks.py +31 -0
- wagtail/search/backends/database/mysql/mysql.py +6 -2
- wagtail/search/tests/test_mysql_backend.py +75 -0
- wagtail/snippets/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/sv/LC_MESSAGES/django.po +4 -3
- wagtail/test/snippets/apps.py +10 -0
- wagtail/test/streamfield_migrations/testutils.py +4 -4
- wagtail/tests/streamfield_migrations/test_migration_names.py +6 -6
- wagtail/tests/streamfield_migrations/test_migrations.py +46 -1
- wagtail/tests/test_streamfield.py +18 -0
- wagtail/users/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/nl/LC_MESSAGES/django.po +4 -3
- wagtail/users/permission_order.py +16 -2
- wagtail/users/templatetags/wagtailusers_tags.py +3 -2
- {wagtail-6.3.1.dist-info → wagtail-6.3.3.dist-info}/METADATA +1 -1
- {wagtail-6.3.1.dist-info → wagtail-6.3.3.dist-info}/RECORD +37 -37
- {wagtail-6.3.1.dist-info → wagtail-6.3.3.dist-info}/LICENSE +0 -0
- {wagtail-6.3.1.dist-info → wagtail-6.3.3.dist-info}/WHEEL +0 -0
- {wagtail-6.3.1.dist-info → wagtail-6.3.3.dist-info}/entry_points.txt +0 -0
- {wagtail-6.3.1.dist-info → wagtail-6.3.3.dist-info}/top_level.txt +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-root{position:relative}.DraftEditor-editorContainer{background-color:#fff0;border-left:.1px solid #0000;position:relative;z-index:1}.public-DraftEditor-block{position:relative}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:1}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.DraftEditorPlaceholder-hidden{display:none}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) ". ";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) ". ";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) ". ";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) ". ";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) ". ";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4}.Draftail-Icon{fill:currentColor;pointer-events:none;vertical-align:middle}.Draftail-Editor{--draftail-offset-inline-start:2rem;--draftail-text-direction:1;border:0;border-radius:0;position:relative}.Draftail-Editor[dir=rtl],[dir=rtl] .Draftail-Editor{--draftail-text-direction:-1}.Draftail-Editor--readonly{pointer-events:none}.Draftail-Editor--readonly .DraftEditor-editorContainer{opacity:.5}.Draftail-Editor--readonly .DraftEditor-editorContainer:before{content:"";display:block;height:100%;inset-inline-start:0;position:absolute;top:0;width:100%;z-index:21}.Draftail-Editor .DraftEditor-root{color:var(--w-color-text-context);font-family:var(--w-font-sans);font-size:1.1875rem;font-variant-ligatures:none;line-height:1.5;overflow:auto}.Draftail-Editor .public-DraftEditor-content,.Draftail-Editor .public-DraftEditorPlaceholder-root{padding:.625rem 1.25rem}.Draftail-Editor .public-DraftEditor-content>*>figure{margin:0}.Draftail-Editor .public-DraftEditorPlaceholder-inner{color:var(--w-color-text-placeholder)}.Draftail-Editor .public-DraftEditorPlaceholder-inner,.Draftail-block--unstyled{margin:.625rem 0}.Draftail-block--empty:not([class*=-list-item]):before{color:var(--w-color-text-placeholder);pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none}@media (forced-colors:active){.Draftail-block--empty:not([class*=-list-item]):before{color:GrayText}}.Draftail-Editor .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}.Draftail-Editor [data-tippy-root]{max-width:calc(100vw - 10px)}.Draftail-Editor .tippy-box{position:relative;transition-property:transform,visibility,opacity}.Draftail-Editor .tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.Draftail-Editor .tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;inset-inline-start:0;transform-origin:center top}.Draftail-Editor .tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.Draftail-Editor .tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;inset-inline-start:0;top:-7px;transform-origin:center bottom}.Draftail-Editor .tippy-box[data-placement^=left]>.tippy-arrow{inset-inline-end:0}.Draftail-Editor .tippy-box[data-placement^=left]>.tippy-arrow:before{border-inline-start-color:initial;border-width:8px 0 8px 8px;inset-inline-end:-7px;transform-origin:center left}.Draftail-Editor .tippy-box[data-placement^=right]>.tippy-arrow{inset-inline-start:0}.Draftail-Editor .tippy-box[data-placement^=right]>.tippy-arrow:before{border-inline-end-color:initial;border-width:8px 8px 8px 0;inset-inline-start:-7px;transform-origin:center right}.Draftail-Editor .tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.Draftail-Editor .tippy-arrow{height:16px;width:16px}.Draftail-Editor .tippy-arrow:before{border-color:#0000;border-style:solid;content:"";position:absolute}.Draftail-Editor .tippy-content{padding:5px 9px;position:relative;z-index:1}.Draftail-Tooltip{background:none;border-radius:0;color:inherit;font-size:inherit;outline:var(--draftail-contrast-outline-modal,10px solid #0000)}.Draftail-Tooltip .tippy-content{padding:0}.Draftail-Tooltip__target{pointer-events:none;position:absolute;visibility:hidden}.Draftail-Tooltip__backdrop{background-color:#0000;bottom:0;inset-inline-end:0;inset-inline-start:0;position:relative;top:0;transition:background-color .1s 0s;z-index:41}.Draftail-Tooltip__backdrop--visible{background-color:#0000001a;position:fixed}.Draftail-ComboBox{background:var(--w-color-surface-field);border-radius:5px;box-shadow:5px 5px 20px #0000001a;color:var(--w-color-text-context);font-size:1.1875rem;min-width:240px;outline:var(--draftail-contrast-outline-modal,10px solid #0000)}.Draftail-ComboBox__label{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.Draftail-ComboBox__field{padding:10px}.Draftail-ComboBox--inline input[disabled]{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.Draftail-ComboBox [aria-autocomplete=list]{border:0;border-radius:0;line-height:1.5;padding:7px 20px;width:100%}.Draftail-ComboBox [aria-autocomplete=list]::placeholder{color:var(--w-color-text-placeholder)}.Draftail-ComboBox__optgroup-label{border-top:var(--draftail-contrast-outline,2px solid #0000);font-size:1rem;font-weight:700;padding:10px}@media (forced-colors:active){.Draftail-ComboBox__optgroup-label{color:GrayText}}.Draftail-ComboBox__menu{max-height:70vh;overflow-y:scroll}.Draftail-ComboBox__option{cursor:pointer}.Draftail-ComboBox__option,.Draftail-ComboBox__status{align-items:center;border:var(--draftail-contrast-outline,2px solid #0000);display:flex;font-size:.875rem;font-weight:700;line-height:1.4;padding:10px}.Draftail-ComboBox__option[aria-selected=true],.Draftail-ComboBox__status[aria-selected=true]{background-color:#ddd;border-color:currentColor}@media (forced-colors:active){.Draftail-ComboBox__option[aria-selected=true],.Draftail-ComboBox__status[aria-selected=true]{background:Highlight;color:HighlightText}}.Draftail-ComboBox__option-icon{height:1.25rem;margin-inline-end:6px;margin-inline-start:6px;width:1.25rem}@media (forced-colors:active){.Draftail-ComboBox__option-icon,.Draftail-ComboBox__option-text{color:initial}}.Draftail-Toolbar{background-color:var(--w-color-surface-menus);border-bottom:0;border-radius:.3125rem;color:var(--w-color-text-button);padding:.375rem;position:relative}.Draftail-Editor--focus .Draftail-Toolbar{position:sticky;top:0;z-index:31}.Draftail-BlockToolbar{float:left}[dir=rtl] .Draftail-BlockToolbar{float:right}.Draftail-BlockToolbar~.DraftEditor-root,.Draftail-BlockToolbar~.Draftail-Toolbar{margin-inline-start:var(--draftail-offset-inline-start)}.Draftail-BlockToolbar__trigger{align-items:center;-webkit-appearance:none;appearance:none;background:var(--w-color-surface-field);border:1px solid;border-radius:50%;color:inherit;display:grid;height:1.5rem;justify-content:center;margin:0;margin-inline-end:.5rem;padding:0;position:absolute;transform:translateY(-50%);visibility:hidden;width:1.5rem}.Draftail-BlockToolbar__trigger:focus,.Draftail-BlockToolbar__trigger:hover,.Draftail-Editor--focus .Draftail-BlockToolbar__trigger,.Draftail-Editor:focus-within .Draftail-BlockToolbar__trigger{visibility:visible}.Draftail-FloatingToolbar{background-color:var(--w-color-surface-menus);border:0;border-radius:.3125rem;color:var(--w-color-text-button);outline:var(--draftail-contrast-outline-modal,10px solid #0000);padding:.375rem}.Draftail-FloatingToolbar__target{pointer-events:none;position:absolute;visibility:hidden}.Draftail-MetaToolbar{background-color:var(--w-color-surface-field);border-top:var(--draftail-contrast-outline,2px solid #0000);color:var(--w-color-surface-menus);display:flex;justify-content:flex-end;padding:.375rem;position:relative}.Draftail-ToolbarGroup{display:inline-block}.Draftail-ToolbarGroup:before{background-color:initial;content:"";display:inline-block;height:1rem;margin:0 .1875rem;vertical-align:middle;width:.0625rem}.Draftail-ToolbarGroup:first-of-type:before{display:none}.Draftail-Editor--readonly .Draftail-ToolbarGroup{opacity:.5}.Draftail-ToolbarButton{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0000;border:1px solid #0000;border-radius:.3125rem;color:inherit;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;max-height:2.875rem;min-width:2.875rem;outline:var(--draftail-contrast-outline,2px solid #0000);padding:.75rem;-webkit-user-select:none;user-select:none}.Draftail-ToolbarButton--active{background-color:#ffffff1a;border:1px solid #fff3}@media (forced-colors:active){.Draftail-ToolbarButton--active{background:Highlight;border-color:currentColor;color:HighlightText}}.Draftail-ToolbarButton__label{display:inline-block;height:1em;vertical-align:middle}@media (forced-colors:active){.Draftail-ToolbarButton__label{color:initial}}[data-draftail-balloon]{cursor:pointer;position:relative}[data-draftail-balloon]:after,[data-draftail-balloon]:before{opacity:0;pointer-events:none;position:absolute;z-index:41}[data-draftail-balloon]:before{content:""}[data-draftail-balloon]:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#111111e6;border-radius:4px;color:#fff;content:attr(aria-label);font-size:.875em;outline:var(--draftail-contrast-outline-modal,10px solid #0000);padding:.5em 1em;white-space:pre}[data-draftail-balloon]:hover:after,[data-draftail-balloon]:hover:before{opacity:1;transition:all .1s ease-out 1s}[data-draftail-balloon=up]:after,[data-draftail-balloon=up]:before{inset-inline-start:50%;top:100%;transform:translate(calc(-50%*var(--draftail-text-direction)),-10px)}[data-draftail-balloon=up]:hover:after,[data-draftail-balloon=up]:hover:before{transform:translate(calc(-50%*var(--draftail-text-direction)))}[data-draftail-balloon=up]:after{margin-top:11px}[data-draftail-balloon=up]:before{border-bottom:9px solid #0000;border-color:#0000 #0000 #111111e6;border-style:solid;border-width:0 9px 6px;margin-top:5px}[data-draftail-balloon=down]:after,[data-draftail-balloon=down]:before{bottom:100%;inset-inline-start:50%;transform:translate(calc(-50%*var(--draftail-text-direction)),10px)}[data-draftail-balloon=down]:hover:after,[data-draftail-balloon=down]:hover:before{transform:translate(calc(-50%*var(--draftail-text-direction)))}[data-draftail-balloon=down]:after{margin-bottom:11px}[data-draftail-balloon=down]:before{border-top:9px solid #0000;border-color:#111111e6 #0000 #0000;border-style:solid;border-width:6px 9px 0;margin-bottom:5px}.Draftail-ToolbarButton--pin{background-color:var(--w-color-text-button);border:0;border-bottom-right-radius:0;border-end-end-radius:0;border-start-start-radius:0;border-top-left-radius:0;color:var(--w-color-surface-menus);inset-inline-end:0;padding:0;position:absolute;top:0}.Draftail-ToolbarButton--pin .Draftail-Icon{height:.75rem;width:.75rem}.Draftail-ToolbarButton--pin .Draftail-ToolbarButton__label{vertical-align:top}.Draftail-ToolbarButton--pin:before{margin-bottom:2px}.Draftail-ToolbarButton--pin:after{margin-bottom:8px}.Draftail-Toolbar--pin{padding-inline-end:1.5rem}.Draftail-DividerBlock{background:#ddd;border:0;height:1px;margin:10px 0}@media (forced-colors:active){.Draftail-DividerBlock{background:CanvasText}}.Tooltip{background-color:var(--w-color-surface-menus);border-radius:.3125rem;box-shadow:0 0 5px var(--w-color-black-35);color:#fff;padding:.625rem;position:absolute;z-index:11}.Tooltip:before{border:15px solid #0000;content:"";position:absolute}.Tooltip--top{margin-top:.625rem;transform:translateX(calc(var(--w-direction-factor)*-50%))}.Tooltip--top:before{content:none}.Tooltip--left{margin-inline-start:25px;transform:translateY(-50%)}.Tooltip--left:before{border-inline-end-color:var(--w-color-surface-menus);inset-inline-end:100%;top:50%;transform:translateY(-50%)}.Tooltip--top-left{margin-top:25px}.Tooltip--top-left:before{border-bottom-color:var(--w-color-surface-menus);bottom:100%;inset-inline-start:25px}.Tooltip__link{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-size:.875rem;margin-inline-end:1.5rem}.Tooltip__link,.Tooltip__link:hover{color:var(--w-color-text-button)}.Tooltip__button.no.button-secondary{border-color:currentColor;color:var(--w-color-critical-100)}.Tooltip__button.no.button-secondary:hover{color:var(--w-color-critical-200)}.Draftail-CommentControl{display:none}.tab-content--comments-enabled .Draftail-CommentControl{display:inline-block}.Draftail-CommentControl .Draftail-ToolbarButton{color:var(--w-color-text-button-outline-default)}.Draftail-CommentControl .Draftail-ToolbarButton:hover .icon-comment-add-reversed,.Draftail-CommentControl .Draftail-ToolbarButton:not(:hover) .icon-comment-add{display:none}.EditorFallback__textarea{border-radius:6px;border-width:1px;margin-top:1rem;min-height:150px;padding:1rem;resize:vertical}.EditorFallback__error{background:none;box-shadow:none}.TooltipEntity{cursor:pointer}.TooltipEntity:hover{color:var(--w-color-surface-button-default)}.TooltipEntity .icon-warning{color:var(--w-color-critical-200)}.TooltipEntity .icon{height:1em;margin-inline-end:.2em;vertical-align:middle;width:1em}.MediaBlock{border:0;cursor:pointer;display:inline-block;padding:0;position:relative}.MediaBlock__icon-wrapper{background:var(--w-color-surface-menus);color:var(--w-color-text-button);inset-inline-end:0;line-height:1;padding:.75rem 1.125rem;pointer-events:none;position:absolute;top:0}.MediaBlock__icon-wrapper .icon{height:1em;vertical-align:text-top;width:1em}.MediaBlock__icon{font-size:1.5rem;height:1.5rem;width:1.5rem}.MediaBlock__img{background-color:var(--w-color-text-context);display:block;height:auto;min-height:50px;min-width:256px;object-fit:contain;pointer-events:none;width:256px}.MediaBlock__fallback{align-items:center;bottom:0;color:var(--w-color-surface-page);display:flex;inset-inline-end:0;inset-inline-start:0;justify-content:center;position:absolute;top:0}.ImageBlock__field{color:var(--w-color-surface-page);cursor:pointer;display:block;float:none;margin-bottom:1.5rem;padding:0;width:auto}.ImageBlock__field__input{background-color:var(--w-color-surface-field);border:0;color:var(--w-color-text-context);font-size:inherit;font-size:1rem}.ImageBlock__field__input[readonly]{color:var(--w-color-border-field-inactive)}.ImageBlock__alt{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:.875rem}.EmbedBlock__link{display:block;margin-bottom:.75rem}.Draftail-Editor .DraftEditor-editorContainer h1,.Draftail-Editor .DraftEditor-editorContainer h2,.Draftail-Editor .DraftEditor-editorContainer h3,.Draftail-Editor .DraftEditor-editorContainer h4,.Draftail-Editor .DraftEditor-editorContainer h5,.Draftail-Editor .DraftEditor-editorContainer h6{color:inherit;font-weight:700;line-height:1.3}.Draftail-Editor .DraftEditor-editorContainer h1{font-size:1.875rem}.Draftail-Editor .DraftEditor-editorContainer h2{font-size:1.5rem}.Draftail-Editor .DraftEditor-editorContainer h3{font-size:1.375rem}.Draftail-Editor .DraftEditor-editorContainer h4{font-size:1.125rem}.Draftail-Editor .DraftEditor-editorContainer h5{font-size:1rem}.Draftail-Editor .DraftEditor-editorContainer h6{font-size:.875rem}.Draftail-Editor{--draftail-offset-inline-start:0px;-webkit-appearance:none;appearance:none;background-color:var(--w-color-surface-field);border:1px solid var(--w-color-border-field-default);border-radius:.3125rem;color:var(--w-color-text-context)}.w-contrast-more .Draftail-Editor{border:1px solid var(--w-color-border-interactive-more-contrast)}.w-contrast-more .Draftail-Editor:hover{border-color:var(--w-color-border-interactive-more-contrast-hover)}.w-contrast-more .Draftail-Editor[disabled],.w-contrast-more .Draftail-Editor[disabled]:hover{border-style:dashed}@media (prefers-contrast:more){.w-contrast-system .Draftail-Editor{border:1px solid var(--w-color-border-interactive-more-contrast)}.w-contrast-system .Draftail-Editor:hover{border-color:var(--w-color-border-interactive-more-contrast-hover)}.w-contrast-system .Draftail-Editor[disabled],.w-contrast-system .Draftail-Editor[disabled]:hover{border-style:dashed}}.Draftail-Editor:hover{border-color:var(--w-color-border-field-hover)}.Draftail-Editor[disabled],.Draftail-Editor[disabled]:hover{background-color:var(--w-color-surface-field-inactive);border-color:var(--w-color-border-field-inactive);color:var(--w-color-text-placeholder);cursor:not-allowed}.Draftail-Editor[aria-invalid=true],.w-field--error>.w-field__input>*>.Draftail-Editor,.w-field--error>.w-field__input>.Draftail-Editor{border-color:var(--w-color-critical-200)}.Draftail-Editor::placeholder{color:var(--w-color-text-placeholder)}.Draftail-Editor--focus{outline:3px solid var(--w-color-focus)}.Draftail-Editor__wrapper{position:relative;width:100%}.Draftail-Toolbar{background-color:var(--w-color-surface-field);border-end-end-radius:0;border-end-start-radius:0;border-width:0;color:var(--w-color-text-placeholder)}.Draftail-Toolbar--pin{display:flex;flex-wrap:wrap}.Draftail-Editor--focus .Draftail-Toolbar{color:var(--w-color-text-context);top:100px}@media screen and (min-width:50em){.Draftail-Editor--focus .Draftail-Toolbar{top:50px}}.w-theme-light .Draftail-Toolbar .Draftail-ToolbarButton--active{background-color:var(--w-color-surface-header);border-color:var(--w-color-border-furniture)}@media (forced-colors:active){.w-theme-light .Draftail-Toolbar .Draftail-ToolbarButton--active{background:Highlight}}@media (prefers-color-scheme:light){.w-theme-system .Draftail-Toolbar .Draftail-ToolbarButton--active{background-color:var(--w-color-surface-header);border-color:var(--w-color-border-furniture)}}@media (prefers-color-scheme:light) and (forced-colors:active){.w-theme-system .Draftail-Toolbar .Draftail-ToolbarButton--active{background:Highlight}}.Draftail-MetaToolbar{background-color:initial;inset-inline-end:0;position:absolute;visibility:hidden}.Draftail-MetaToolbar:empty{display:none}@media (hover:hover){.Draftail-MetaToolbar{visibility:hidden}.Draftail-Editor:focus-within .Draftail-MetaToolbar,.Draftail-Editor:hover .Draftail-MetaToolbar{visibility:visible}}.Draftail-BlockToolbar{background:#0000;display:flex;height:100%;inset-inline-start:-40px;justify-content:center;position:absolute;top:0;width:40px}.Draftail-BlockToolbar__trigger{color:var(--w-color-text-button-outline-default);height:1rem;margin-inline-end:calc(.25rem - 2px);width:1rem}@media screen and (min-width:50em){.Draftail-BlockToolbar__trigger{margin-inline-end:calc(1.375rem - 2px)}}.Draftail-BlockToolbar__trigger:before{background:#0000;border-radius:.3125rem;content:"";display:block;height:30px;inset-inline-start:50%;position:absolute;top:50%;transform:translate(calc(var(--w-direction-factor)*-50%),-50%);width:30px;z-index:1}.Draftail-Editor:not(:hover,.Draftail-Editor--focus,:focus-within) .Draftail-BlockToolbar__trigger{visibility:hidden!important}.Draftail-BlockToolbar__trigger:focus-visible,.Draftail-BlockToolbar__trigger:hover{background-color:var(--w-color-text-button-outline-hover);color:var(--w-color-surface-page)}.Draftail-BlockToolbar__trigger .icon{height:.75rem;transition:transform .3s ease;width:.75rem}.Draftail-BlockToolbar__trigger[aria-expanded=true] .icon{transform:rotate(45deg)}.Draftail-ToolbarGroup{display:flex}.Draftail-ToolbarGroup:before{display:none}.Draftail-ToolbarButton{align-items:center;display:flex;height:1.875rem;justify-content:center;margin-inline-end:.625rem;min-width:1.875rem;padding:0}.w-contrast-more .Draftail-ToolbarButton{border:1px solid var(--w-color-border-interactive-more-contrast)}.w-contrast-more .Draftail-ToolbarButton:hover{border-color:var(--w-color-border-interactive-more-contrast-hover)}.w-contrast-more .Draftail-ToolbarButton[disabled],.w-contrast-more .Draftail-ToolbarButton[disabled]:hover{border-style:dashed}@media (prefers-contrast:more){.w-contrast-system .Draftail-ToolbarButton{border:1px solid var(--w-color-border-interactive-more-contrast)}.w-contrast-system .Draftail-ToolbarButton:hover{border-color:var(--w-color-border-interactive-more-contrast-hover)}.w-contrast-system .Draftail-ToolbarButton[disabled],.w-contrast-system .Draftail-ToolbarButton[disabled]:hover{border-style:dashed}}.Draftail-ToolbarGroup:last-of-type .Draftail-ToolbarButton:last-of-type{margin-inline-end:0}.Draftail-ToolbarButton[disabled]{opacity:.3}.Draftail-ToolbarButton:active,.Draftail-ToolbarButton:hover{border:1px solid var(--w-color-border-button-small-outline-default)}.Draftail-ToolbarButton .icon{height:1em;vertical-align:middle;width:1em}.Draftail-ToolbarButton .icon-h1,.Draftail-ToolbarButton .icon-h2,.Draftail-ToolbarButton .icon-h3,.Draftail-ToolbarButton .icon-h4,.Draftail-ToolbarButton .icon-h5,.Draftail-ToolbarButton .icon-h6{height:1.25em;width:1.25em}.Draftail-ToolbarButton--pin{border:1px solid var(--w-color-surface-tooltip);height:1.5rem;min-width:1.5rem}.Draftail-ToolbarButton--pin:hover{border-color:var(--w-color-surface-tooltip)}.Draftail-Toolbar .Draftail-ToolbarButton--pin{background-color:var(--w-color-surface-page);border-color:var(--w-color-border-field-default);border-inline-end-width:0;border-top-width:0;color:currentColor}.Draftail-Editor:hover .Draftail-Toolbar .Draftail-ToolbarButton--pin{border-color:var(--w-color-border-field-hover)}.Draftail-block--blockquote{border-inline-start:.25em solid var(--w-color-border-field-default);color:var(--w-color-text-meta);margin:1em 0;padding:1em 2em}.DraftEditor-editorContainer{border:0}
|
|
1
|
+
.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-root{position:relative}.DraftEditor-editorContainer{background-color:#fff0;border-left:.1px solid #0000;position:relative;z-index:1}.public-DraftEditor-block{position:relative}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:1}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.DraftEditorPlaceholder-hidden{display:none}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) ". ";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) ". ";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) ". ";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) ". ";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) ". ";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4}.Draftail-Icon{fill:currentColor;pointer-events:none;vertical-align:middle}.Draftail-Editor{--draftail-offset-inline-start:2rem;--draftail-text-direction:1;border:0;border-radius:0;position:relative}.Draftail-Editor[dir=rtl],[dir=rtl] .Draftail-Editor{--draftail-text-direction:-1}.Draftail-Editor--readonly{pointer-events:none}.Draftail-Editor--readonly .DraftEditor-editorContainer{opacity:.5}.Draftail-Editor--readonly .DraftEditor-editorContainer:before{content:"";display:block;height:100%;inset-inline-start:0;position:absolute;top:0;width:100%;z-index:21}.Draftail-Editor .DraftEditor-root{color:var(--w-color-text-context);font-family:var(--w-font-sans);font-size:1.1875rem;font-variant-ligatures:none;line-height:1.5;overflow:auto}.Draftail-Editor .public-DraftEditor-content,.Draftail-Editor .public-DraftEditorPlaceholder-root{padding:.625rem 1.25rem}.Draftail-Editor .public-DraftEditor-content>*>figure{margin:0}.Draftail-Editor .public-DraftEditorPlaceholder-inner{color:var(--w-color-text-placeholder)}.Draftail-Editor .public-DraftEditorPlaceholder-inner,.Draftail-block--unstyled{margin:.625rem 0}.Draftail-block--empty:not([class*=-list-item]):before{color:var(--w-color-text-placeholder);pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none}@media (forced-colors:active){.Draftail-block--empty:not([class*=-list-item]):before{color:GrayText}}.Draftail-Editor .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}.Draftail-Editor [data-tippy-root]{max-width:calc(100vw - 10px)}.Draftail-Editor .tippy-box{position:relative;transition-property:transform,visibility,opacity}.Draftail-Editor .tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.Draftail-Editor .tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;inset-inline-start:0;transform-origin:center top}.Draftail-Editor .tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.Draftail-Editor .tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;inset-inline-start:0;top:-7px;transform-origin:center bottom}.Draftail-Editor .tippy-box[data-placement^=left]>.tippy-arrow{inset-inline-end:0}.Draftail-Editor .tippy-box[data-placement^=left]>.tippy-arrow:before{border-inline-start-color:initial;border-width:8px 0 8px 8px;inset-inline-end:-7px;transform-origin:center left}.Draftail-Editor .tippy-box[data-placement^=right]>.tippy-arrow{inset-inline-start:0}.Draftail-Editor .tippy-box[data-placement^=right]>.tippy-arrow:before{border-inline-end-color:initial;border-width:8px 8px 8px 0;inset-inline-start:-7px;transform-origin:center right}.Draftail-Editor .tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.Draftail-Editor .tippy-arrow{height:16px;width:16px}.Draftail-Editor .tippy-arrow:before{border-color:#0000;border-style:solid;content:"";position:absolute}.Draftail-Editor .tippy-content{padding:5px 9px;position:relative;z-index:1}.Draftail-Tooltip{background:none;border-radius:0;color:inherit;font-size:inherit;outline:var(--draftail-contrast-outline-modal,10px solid #0000)}.Draftail-Tooltip .tippy-content{padding:0}.Draftail-Tooltip__target{pointer-events:none;position:absolute;visibility:hidden}.Draftail-Tooltip__backdrop{background-color:#0000;bottom:0;inset-inline-end:0;inset-inline-start:0;position:relative;top:0;transition:background-color .1s 0s;z-index:41}.Draftail-Tooltip__backdrop--visible{background-color:#0000001a;position:fixed}.Draftail-ComboBox{background:var(--w-color-surface-field);border-radius:5px;box-shadow:5px 5px 20px #0000001a;color:var(--w-color-text-context);font-size:1.1875rem;min-width:240px;outline:var(--draftail-contrast-outline-modal,10px solid #0000)}.Draftail-ComboBox__label{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.Draftail-ComboBox__field{padding:10px}.Draftail-ComboBox--inline input[disabled]{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.Draftail-ComboBox [aria-autocomplete=list]{border:0;border-radius:0;line-height:1.5;padding:7px 20px;width:100%}.Draftail-ComboBox [aria-autocomplete=list]::placeholder{color:var(--w-color-text-placeholder)}.Draftail-ComboBox__optgroup-label{border-top:var(--draftail-contrast-outline,2px solid #0000);font-size:1rem;font-weight:700;padding:10px}@media (forced-colors:active){.Draftail-ComboBox__optgroup-label{color:GrayText}}.Draftail-ComboBox__menu{max-height:70vh;overflow-y:scroll}.Draftail-ComboBox__option{cursor:pointer}.Draftail-ComboBox__option,.Draftail-ComboBox__status{align-items:center;border:var(--draftail-contrast-outline,2px solid #0000);display:flex;font-size:.875rem;font-weight:700;line-height:1.4;padding:10px}.Draftail-ComboBox__option[aria-selected=true],.Draftail-ComboBox__status[aria-selected=true]{background-color:#ddd;border-color:currentColor}@media (forced-colors:active){.Draftail-ComboBox__option[aria-selected=true],.Draftail-ComboBox__status[aria-selected=true]{background:Highlight;color:HighlightText}}.Draftail-ComboBox__option-icon{height:1.25rem;margin-inline-end:6px;margin-inline-start:6px;width:1.25rem}@media (forced-colors:active){.Draftail-ComboBox__option-icon,.Draftail-ComboBox__option-text{color:initial}}.Draftail-Toolbar{background-color:var(--w-color-surface-menus);border-bottom:0;border-radius:.3125rem;color:var(--w-color-text-button);padding:.375rem;position:relative}.Draftail-Editor--focus .Draftail-Toolbar{position:sticky;top:0;z-index:31}.Draftail-BlockToolbar{float:left}[dir=rtl] .Draftail-BlockToolbar{float:right}.Draftail-BlockToolbar~.DraftEditor-root,.Draftail-BlockToolbar~.Draftail-Toolbar{margin-inline-start:var(--draftail-offset-inline-start)}.Draftail-BlockToolbar__trigger{align-items:center;-webkit-appearance:none;appearance:none;background:var(--w-color-surface-field);border:1px solid;border-radius:50%;color:inherit;display:grid;height:1.5rem;justify-content:center;margin:0;margin-inline-end:.5rem;padding:0;position:absolute;transform:translateY(-50%);visibility:hidden;width:1.5rem}.Draftail-BlockToolbar__trigger:focus,.Draftail-BlockToolbar__trigger:hover,.Draftail-Editor--focus .Draftail-BlockToolbar__trigger,.Draftail-Editor:focus-within .Draftail-BlockToolbar__trigger{visibility:visible}.Draftail-FloatingToolbar{background-color:var(--w-color-surface-menus);border:0;border-radius:.3125rem;color:var(--w-color-text-button);outline:var(--draftail-contrast-outline-modal,10px solid #0000);padding:.375rem}.Draftail-FloatingToolbar__target{pointer-events:none;position:absolute;visibility:hidden}.Draftail-MetaToolbar{background-color:var(--w-color-surface-field);border-top:var(--draftail-contrast-outline,2px solid #0000);color:var(--w-color-surface-menus);display:flex;justify-content:flex-end;padding:.375rem;position:relative}.Draftail-ToolbarGroup{display:inline-block}.Draftail-ToolbarGroup:before{background-color:initial;content:"";display:inline-block;height:1rem;margin:0 .1875rem;vertical-align:middle;width:.0625rem}.Draftail-ToolbarGroup:first-of-type:before{display:none}.Draftail-Editor--readonly .Draftail-ToolbarGroup{opacity:.5}.Draftail-ToolbarButton{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0000;border:1px solid #0000;border-radius:.3125rem;color:inherit;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;max-height:2.875rem;min-width:2.875rem;outline:var(--draftail-contrast-outline,2px solid #0000);padding:.75rem;-webkit-user-select:none;user-select:none}.Draftail-ToolbarButton--active{background-color:#ffffff1a;border:1px solid #fff3}@media (forced-colors:active){.Draftail-ToolbarButton--active{background:Highlight;border-color:currentColor;color:HighlightText}}.Draftail-ToolbarButton__label{display:inline-block;height:1em;vertical-align:middle}@media (forced-colors:active){.Draftail-ToolbarButton__label{color:initial}}[data-draftail-balloon]{cursor:pointer;position:relative}[data-draftail-balloon]:after,[data-draftail-balloon]:before{opacity:0;pointer-events:none;position:absolute;z-index:41}[data-draftail-balloon]:before{content:""}[data-draftail-balloon]:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#111111e6;border-radius:4px;color:#fff;content:attr(aria-label);font-size:.875em;outline:var(--draftail-contrast-outline-modal,10px solid #0000);padding:.5em 1em;white-space:pre}[data-draftail-balloon]:hover:after,[data-draftail-balloon]:hover:before{opacity:1;transition:all .1s ease-out 1s}[data-draftail-balloon=up]:after,[data-draftail-balloon=up]:before{inset-inline-start:50%;top:100%;transform:translate(calc(-50%*var(--draftail-text-direction)),-10px)}[data-draftail-balloon=up]:hover:after,[data-draftail-balloon=up]:hover:before{transform:translate(calc(-50%*var(--draftail-text-direction)))}[data-draftail-balloon=up]:after{margin-top:11px}[data-draftail-balloon=up]:before{border-bottom:9px solid #0000;border-color:#0000 #0000 #111111e6;border-style:solid;border-width:0 9px 6px;margin-top:5px}[data-draftail-balloon=down]:after,[data-draftail-balloon=down]:before{bottom:100%;inset-inline-start:50%;transform:translate(calc(-50%*var(--draftail-text-direction)),10px)}[data-draftail-balloon=down]:hover:after,[data-draftail-balloon=down]:hover:before{transform:translate(calc(-50%*var(--draftail-text-direction)))}[data-draftail-balloon=down]:after{margin-bottom:11px}[data-draftail-balloon=down]:before{border-top:9px solid #0000;border-color:#111111e6 #0000 #0000;border-style:solid;border-width:6px 9px 0;margin-bottom:5px}.Draftail-ToolbarButton--pin{background-color:var(--w-color-text-button);border:0;border-bottom-right-radius:0;border-end-end-radius:0;border-start-start-radius:0;border-top-left-radius:0;color:var(--w-color-surface-menus);inset-inline-end:0;padding:0;position:absolute;top:0}.Draftail-ToolbarButton--pin .Draftail-Icon{height:.75rem;width:.75rem}.Draftail-ToolbarButton--pin .Draftail-ToolbarButton__label{vertical-align:top}.Draftail-ToolbarButton--pin:before{margin-bottom:2px}.Draftail-ToolbarButton--pin:after{margin-bottom:8px}.Draftail-Toolbar--pin{padding-inline-end:1.5rem}.Draftail-DividerBlock{background:#ddd;border:0;height:1px;margin:10px 0}@media (forced-colors:active){.Draftail-DividerBlock{background:CanvasText}}.Tooltip{background-color:var(--w-color-surface-menus);border-radius:.3125rem;box-shadow:0 0 5px var(--w-color-black-35);color:#fff;padding:.625rem;position:absolute;z-index:11}.Tooltip:before{border:15px solid #0000;content:"";position:absolute}.Tooltip--top{margin-top:.625rem;transform:translateX(calc(var(--w-direction-factor)*-50%))}.Tooltip--top:before{content:none}.Tooltip--left{margin-inline-start:25px;transform:translateY(-50%)}.Tooltip--left:before{border-inline-end-color:var(--w-color-surface-menus);inset-inline-end:100%;top:50%;transform:translateY(-50%)}.Tooltip--top-left{margin-top:25px}.Tooltip--top-left:before{border-bottom-color:var(--w-color-surface-menus);bottom:100%;inset-inline-start:25px}.Tooltip__link{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-size:.875rem;margin-inline-end:1.5rem}.Tooltip__link,.Tooltip__link:hover{color:var(--w-color-text-button)}.Tooltip__button.no.button-secondary{border-color:currentColor;color:var(--w-color-critical-100)}.Tooltip__button.no.button-secondary:hover{color:var(--w-color-critical-200)}.Draftail-CommentControl{display:none}.tab-content--comments-enabled .Draftail-CommentControl{display:inline-block}.Draftail-CommentControl .Draftail-ToolbarButton{color:var(--w-color-text-button-outline-default)}.Draftail-CommentControl .Draftail-ToolbarButton:hover .icon-comment-add-reversed,.Draftail-CommentControl .Draftail-ToolbarButton:not(:hover) .icon-comment-add{display:none}.EditorFallback__textarea{border-radius:6px;border-width:1px;margin-top:1rem;min-height:150px;padding:1rem;resize:vertical}.EditorFallback__error{background:none;box-shadow:none}.TooltipEntity{cursor:pointer}.TooltipEntity:hover{color:var(--w-color-surface-button-default)}.TooltipEntity .icon-warning{color:var(--w-color-critical-200)}.TooltipEntity .icon{height:1em;margin-inline-end:.2em;vertical-align:middle;width:1em}.MediaBlock{border:0;cursor:pointer;display:inline-block;padding:0;position:relative}.MediaBlock__icon-wrapper{background:var(--w-color-surface-menus);color:var(--w-color-text-button);inset-inline-end:0;line-height:1;padding:.75rem 1.125rem;pointer-events:none;position:absolute;top:0}.MediaBlock__icon-wrapper .icon{height:1em;vertical-align:text-top;width:1em}.MediaBlock__icon{font-size:1.5rem;height:1.5rem;width:1.5rem}.MediaBlock__img{background-color:var(--w-color-text-context);display:block;height:auto;min-height:50px;min-width:256px;object-fit:contain;pointer-events:none;width:256px}.MediaBlock__fallback{align-items:center;bottom:0;color:var(--w-color-surface-page);display:flex;inset-inline-end:0;inset-inline-start:0;justify-content:center;position:absolute;top:0}.ImageBlock__field{color:var(--w-color-surface-page);cursor:pointer;display:block;float:none;margin-bottom:1.5rem;padding:0;width:auto}.ImageBlock__field__input{background-color:var(--w-color-surface-field);border:0;color:var(--w-color-text-context);font-size:inherit;font-size:1rem}.ImageBlock__field__input[readonly]{color:var(--w-color-border-field-inactive)}.ImageBlock__alt{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:.875rem}.EmbedBlock__link{display:block;margin-bottom:.75rem}.Draftail-Editor .DraftEditor-editorContainer h1,.Draftail-Editor .DraftEditor-editorContainer h2,.Draftail-Editor .DraftEditor-editorContainer h3,.Draftail-Editor .DraftEditor-editorContainer h4,.Draftail-Editor .DraftEditor-editorContainer h5,.Draftail-Editor .DraftEditor-editorContainer h6{color:inherit;font-weight:700;line-height:1.3}.Draftail-Editor .DraftEditor-editorContainer h1{font-size:1.875rem}.Draftail-Editor .DraftEditor-editorContainer h2{font-size:1.5rem}.Draftail-Editor .DraftEditor-editorContainer h3{font-size:1.375rem}.Draftail-Editor .DraftEditor-editorContainer h4{font-size:1.125rem}.Draftail-Editor .DraftEditor-editorContainer h5{font-size:1rem}.Draftail-Editor .DraftEditor-editorContainer h6{font-size:.875rem}.Draftail-Editor{--draftail-offset-inline-start:0px;-webkit-appearance:none;appearance:none;background-color:var(--w-color-surface-field);border:1px solid var(--w-color-border-field-default);border-radius:.3125rem;color:var(--w-color-text-context)}.w-contrast-more .Draftail-Editor{border:1px solid var(--w-color-border-interactive-more-contrast)}.w-contrast-more .Draftail-Editor:hover{border-color:var(--w-color-border-interactive-more-contrast-hover)}.w-contrast-more .Draftail-Editor[disabled],.w-contrast-more .Draftail-Editor[disabled]:hover{border-style:dashed}@media (prefers-contrast:more){.w-contrast-system .Draftail-Editor{border:1px solid var(--w-color-border-interactive-more-contrast)}.w-contrast-system .Draftail-Editor:hover{border-color:var(--w-color-border-interactive-more-contrast-hover)}.w-contrast-system .Draftail-Editor[disabled],.w-contrast-system .Draftail-Editor[disabled]:hover{border-style:dashed}}.Draftail-Editor:hover{border-color:var(--w-color-border-field-hover)}.Draftail-Editor[disabled],.Draftail-Editor[disabled]:hover{background-color:var(--w-color-surface-field-inactive);border-color:var(--w-color-border-field-inactive);color:var(--w-color-text-placeholder);cursor:not-allowed}.Draftail-Editor[aria-invalid=true],.w-field--error>.w-field__input>*>.Draftail-Editor,.w-field--error>.w-field__input>.Draftail-Editor{border-color:var(--w-color-critical-200)}.Draftail-Editor::placeholder{color:var(--w-color-text-placeholder)}.Draftail-Editor--focus{outline:3px solid var(--w-color-focus)}.Draftail-Editor__wrapper{position:relative;width:100%}.Draftail-Toolbar{background-color:var(--w-color-surface-field);border-end-end-radius:0;border-end-start-radius:0;border-width:0;color:var(--w-color-text-placeholder)}.Draftail-Toolbar--pin{display:flex;flex-wrap:wrap}.Draftail-Editor--focus .Draftail-Toolbar{color:var(--w-color-text-context);top:100px}@media screen and (min-width:50em){.Draftail-Editor--focus .Draftail-Toolbar{top:50px}}.w-theme-light .Draftail-Toolbar .Draftail-ToolbarButton--active{background-color:var(--w-color-surface-header);border-color:var(--w-color-border-furniture)}@media (forced-colors:active){.w-theme-light .Draftail-Toolbar .Draftail-ToolbarButton--active{background:Highlight}}@media (prefers-color-scheme:light){.w-theme-system .Draftail-Toolbar .Draftail-ToolbarButton--active{background-color:var(--w-color-surface-header);border-color:var(--w-color-border-furniture)}}@media (prefers-color-scheme:light) and (forced-colors:active){.w-theme-system .Draftail-Toolbar .Draftail-ToolbarButton--active{background:Highlight}}.Draftail-MetaToolbar{background-color:initial;inset-inline-end:0;position:absolute;visibility:hidden}.Draftail-MetaToolbar:empty{display:none}@media (hover:hover){.Draftail-MetaToolbar{visibility:hidden}.Draftail-Editor:focus-within .Draftail-MetaToolbar,.Draftail-Editor:hover .Draftail-MetaToolbar{visibility:visible}}.Draftail-BlockToolbar{background:#0000;display:flex;height:100%;inset-inline-start:-40px;justify-content:center;position:absolute;top:0;width:40px}.Draftail-BlockToolbar__trigger{color:var(--w-color-text-button-outline-default);height:1rem;margin-inline-end:calc(.25rem - 2px);width:1rem}@media screen and (min-width:50em){.Draftail-BlockToolbar__trigger{margin-inline-end:calc(1.375rem - 2px)}}.Draftail-BlockToolbar__trigger:before{background:#0000;border-radius:.3125rem;content:"";display:block;height:30px;inset-inline-start:50%;position:absolute;top:50%;transform:translate(calc(var(--w-direction-factor)*-50%),-50%);width:30px;z-index:1}.Draftail-Editor:not(:hover,.Draftail-Editor--focus,:focus-within) .Draftail-BlockToolbar__trigger{visibility:hidden!important}.Draftail-BlockToolbar__trigger:focus-visible,.Draftail-BlockToolbar__trigger:hover{background-color:var(--w-color-text-button-outline-hover);color:var(--w-color-surface-page)}.Draftail-BlockToolbar__trigger .icon{height:.75rem;transition:transform .3s ease;width:.75rem}.Draftail-BlockToolbar__trigger[aria-expanded=true] .icon{transform:rotate(45deg)}.Draftail-ToolbarGroup{display:flex;flex-wrap:wrap}.Draftail-ToolbarGroup:before{display:none}.Draftail-ToolbarButton{align-items:center;display:flex;height:1.875rem;justify-content:center;margin-inline-end:.625rem;min-width:1.875rem;padding:0}.w-contrast-more .Draftail-ToolbarButton{border:1px solid var(--w-color-border-interactive-more-contrast)}.w-contrast-more .Draftail-ToolbarButton:hover{border-color:var(--w-color-border-interactive-more-contrast-hover)}.w-contrast-more .Draftail-ToolbarButton[disabled],.w-contrast-more .Draftail-ToolbarButton[disabled]:hover{border-style:dashed}@media (prefers-contrast:more){.w-contrast-system .Draftail-ToolbarButton{border:1px solid var(--w-color-border-interactive-more-contrast)}.w-contrast-system .Draftail-ToolbarButton:hover{border-color:var(--w-color-border-interactive-more-contrast-hover)}.w-contrast-system .Draftail-ToolbarButton[disabled],.w-contrast-system .Draftail-ToolbarButton[disabled]:hover{border-style:dashed}}.Draftail-ToolbarGroup:last-of-type .Draftail-ToolbarButton:last-of-type{margin-inline-end:0}.Draftail-ToolbarButton[disabled]{opacity:.3}.Draftail-ToolbarButton:active,.Draftail-ToolbarButton:hover{border:1px solid var(--w-color-border-button-small-outline-default)}.Draftail-ToolbarButton .icon{height:1em;vertical-align:middle;width:1em}.Draftail-ToolbarButton .icon-h1,.Draftail-ToolbarButton .icon-h2,.Draftail-ToolbarButton .icon-h3,.Draftail-ToolbarButton .icon-h4,.Draftail-ToolbarButton .icon-h5,.Draftail-ToolbarButton .icon-h6{height:1.25em;width:1.25em}.Draftail-ToolbarButton--pin{border:1px solid var(--w-color-surface-tooltip);height:1.5rem;min-width:1.5rem}.Draftail-ToolbarButton--pin:hover{border-color:var(--w-color-surface-tooltip)}.Draftail-Toolbar .Draftail-ToolbarButton--pin{background-color:var(--w-color-surface-page);border-color:var(--w-color-border-field-default);border-inline-end-width:0;border-top-width:0;color:currentColor}.Draftail-Editor:hover .Draftail-Toolbar .Draftail-ToolbarButton--pin{border-color:var(--w-color-border-field-hover)}.Draftail-block--blockquote{border-inline-start:.25em solid var(--w-color-border-field-default);color:var(--w-color-text-meta);margin:1em 0;padding:1em 2em}.DraftEditor-editorContainer{border:0}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.c-sf-add-button{align-items:center;-webkit-appearance:none;appearance:none;background-color:var(--w-color-surface-page);color:var(--w-color-text-button-outline-default);cursor:pointer;display:grid;height:1.5rem;justify-content:center;margin-inline-start:calc(-1px + -.25rem);padding:0;width:1.5rem}.c-sf-add-button .icon{border:1px solid;border-radius:100%;height:1rem;padding:.125rem;transition:transform .3s ease;width:1rem}.c-sf-add-button[aria-expanded=true] .icon{transform:rotate(45deg)}.c-sf-add-button:focus-visible .icon,.c-sf-add-button:hover .icon{background-color:var(--w-color-text-button-outline-hover);color:var(--w-color-surface-page)}.c-sf-add-button[disabled]{opacity:.2}@media (forced-colors:active){.c-sf-add-button[disabled]{color:GrayText}}[aria-expanded=true]+.w-panel__heading .c-sf-block__title{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[aria-expanded=false]+.w-panel__heading .c-sf-block__title:not(:empty)+.c-sf-block__type{display:none}.c-sf-help .help{margin-bottom:
|
|
1
|
+
.c-sf-add-button{align-items:center;-webkit-appearance:none;appearance:none;background-color:var(--w-color-surface-page);color:var(--w-color-text-button-outline-default);cursor:pointer;display:grid;height:1.5rem;justify-content:center;margin-inline-start:calc(-1px + -.25rem);padding:0;width:1.5rem}.c-sf-add-button .icon{border:1px solid;border-radius:100%;height:1rem;padding:.125rem;transition:transform .3s ease;width:1rem}.c-sf-add-button[aria-expanded=true] .icon{transform:rotate(45deg)}.c-sf-add-button:focus-visible .icon,.c-sf-add-button:hover .icon{background-color:var(--w-color-text-button-outline-hover);color:var(--w-color-surface-page)}.c-sf-add-button[disabled]{opacity:.2}@media (forced-colors:active){.c-sf-add-button[disabled]{color:GrayText}}[aria-expanded=true]+.w-panel__heading .c-sf-block__title{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[aria-expanded=false]+.w-panel__heading .c-sf-block__title:not(:empty)+.c-sf-block__type{display:none}.c-sf-help .help{margin-bottom:1rem;margin-top:0}
|
wagtail/admin/userbar.py
CHANGED
|
@@ -153,29 +153,29 @@ class StreamChildrenToListBlockOperation(BaseBlockOperation):
|
|
|
153
153
|
super().__init__()
|
|
154
154
|
self.block_name = block_name
|
|
155
155
|
self.list_block_name = list_block_name
|
|
156
|
-
self.temp_blocks = []
|
|
157
156
|
|
|
158
157
|
def apply(self, block_value):
|
|
158
|
+
candidate_blocks = []
|
|
159
159
|
mapped_block_value = []
|
|
160
160
|
for child_block in block_value:
|
|
161
161
|
if child_block["type"] == self.block_name:
|
|
162
|
-
|
|
162
|
+
candidate_blocks.append(child_block)
|
|
163
163
|
else:
|
|
164
164
|
mapped_block_value.append(child_block)
|
|
165
165
|
|
|
166
|
-
self.map_temp_blocks_to_list_items()
|
|
166
|
+
list_items = self.map_temp_blocks_to_list_items(candidate_blocks)
|
|
167
167
|
|
|
168
|
-
if
|
|
169
|
-
new_list_block = {"type": self.list_block_name, "value":
|
|
168
|
+
if list_items:
|
|
169
|
+
new_list_block = {"type": self.list_block_name, "value": list_items}
|
|
170
170
|
mapped_block_value.append(new_list_block)
|
|
171
171
|
|
|
172
172
|
return mapped_block_value
|
|
173
173
|
|
|
174
|
-
def map_temp_blocks_to_list_items(self):
|
|
175
|
-
|
|
176
|
-
for block in
|
|
177
|
-
|
|
178
|
-
|
|
174
|
+
def map_temp_blocks_to_list_items(self, blocks):
|
|
175
|
+
list_items = []
|
|
176
|
+
for block in blocks:
|
|
177
|
+
list_items.append({**block, "type": "item"})
|
|
178
|
+
return list_items
|
|
179
179
|
|
|
180
180
|
@property
|
|
181
181
|
def operation_name_fragment(self):
|
wagtail/blocks/stream_block.py
CHANGED
|
@@ -710,7 +710,7 @@ class StreamValue(MutableSequence):
|
|
|
710
710
|
raw_values = OrderedDict(
|
|
711
711
|
(i, raw_item["value"])
|
|
712
712
|
for i, raw_item in enumerate(self._raw_data)
|
|
713
|
-
if
|
|
713
|
+
if self._bound_blocks[i] is None and raw_item["type"] == type_name
|
|
714
714
|
)
|
|
715
715
|
# pass the raw block values to bulk_to_python as a list
|
|
716
716
|
converted_values = child_block.bulk_to_python(raw_values.values())
|
|
Binary file
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
# Amós Oviedo <amos.oviedo@gmail.com>, 2016
|
|
7
7
|
# Amós Oviedo <amos.oviedo@gmail.com>, 2016
|
|
8
8
|
# Amós Oviedo <amos.oviedo@gmail.com>, 2016
|
|
9
|
-
# X Bello <xbello@gmail.com>, 2022
|
|
9
|
+
# X Bello <xbello@gmail.com>, 2022,2024
|
|
10
10
|
msgid ""
|
|
11
11
|
msgstr ""
|
|
12
12
|
"Project-Id-Version: Wagtail\n"
|
|
13
13
|
"Report-Msgid-Bugs-To: \n"
|
|
14
14
|
"POT-Creation-Date: 2024-10-21 17:53+0100\n"
|
|
15
15
|
"PO-Revision-Date: 2014-09-11 15:42+0000\n"
|
|
16
|
-
"Last-Translator: X Bello <xbello@gmail.com>, 2022\n"
|
|
16
|
+
"Last-Translator: X Bello <xbello@gmail.com>, 2022,2024\n"
|
|
17
17
|
"Language-Team: Galician (http://app.transifex.com/torchbox/wagtail/language/"
|
|
18
18
|
"gl/)\n"
|
|
19
19
|
"MIME-Version: 1.0\n"
|
|
@@ -77,7 +77,7 @@ msgid "Hidden field"
|
|
|
77
77
|
msgstr "Campo oculto"
|
|
78
78
|
|
|
79
79
|
msgid "submit time"
|
|
80
|
-
msgstr "
|
|
80
|
+
msgstr "hora de envío"
|
|
81
81
|
|
|
82
82
|
msgid "form submission"
|
|
83
83
|
msgstr "formulario de envío"
|
|
@@ -102,7 +102,7 @@ msgid "field type"
|
|
|
102
102
|
msgstr "tipo de campo"
|
|
103
103
|
|
|
104
104
|
msgid "required"
|
|
105
|
-
msgstr "
|
|
105
|
+
msgstr "obrigatorio"
|
|
106
106
|
|
|
107
107
|
msgid "choices"
|
|
108
108
|
msgstr "seleccións"
|
|
@@ -603,11 +603,13 @@ class TestFormPageWithCustomFormBuilder(WagtailTestUtils, TestCase):
|
|
|
603
603
|
html=True,
|
|
604
604
|
)
|
|
605
605
|
# check ip address field has rendered
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
)
|
|
606
|
+
# (not comparing HTML directly because https://docs.djangoproject.com/en/5.1/releases/5.1.5/
|
|
607
|
+
# added a maxlength attribute)
|
|
608
|
+
soup = self.get_soup(response.content)
|
|
609
|
+
input = soup.find("input", {"name": "device_ip_address"})
|
|
610
|
+
self.assertEqual(input["type"], "text")
|
|
611
|
+
self.assertEqual(input["required"], "")
|
|
612
|
+
self.assertEqual(input["id"], "id_device_ip_address")
|
|
611
613
|
|
|
612
614
|
def test_post_invalid_form(self):
|
|
613
615
|
response = self.client.post(
|
|
@@ -72,7 +72,7 @@ class CloudfrontBackend(BaseBackend):
|
|
|
72
72
|
paths_by_distribution_id[distribution_id].add(url_parsed.path)
|
|
73
73
|
|
|
74
74
|
for distribution_id, paths in paths_by_distribution_id.items():
|
|
75
|
-
self._create_invalidation(distribution_id, paths)
|
|
75
|
+
self._create_invalidation(distribution_id, list(paths))
|
|
76
76
|
|
|
77
77
|
def purge(self, url):
|
|
78
78
|
self.purge_batch([url])
|
|
@@ -360,7 +360,7 @@ class TestBackendConfiguration(SimpleTestCase):
|
|
|
360
360
|
backends.get("cloudfront").purge("http://torchbox.com/blog/")
|
|
361
361
|
|
|
362
362
|
_create_invalidation.assert_called_once_with(
|
|
363
|
-
"frontend",
|
|
363
|
+
"frontend", ["/home/events/christmas/"]
|
|
364
364
|
)
|
|
365
365
|
|
|
366
366
|
self.assertTrue(
|
wagtail/images/blocks.py
CHANGED
|
@@ -242,6 +242,14 @@ class ImageBlock(StructBlock):
|
|
|
242
242
|
def render_basic(self, value, context=None):
|
|
243
243
|
return self.child_blocks["image"].render_basic(value, context=context)
|
|
244
244
|
|
|
245
|
+
def get_block_by_content_path(self, value, path_elements):
|
|
246
|
+
if path_elements:
|
|
247
|
+
return super().get_block_by_content_path(
|
|
248
|
+
self._image_to_struct_value(value), path_elements
|
|
249
|
+
)
|
|
250
|
+
else:
|
|
251
|
+
return self.bind(value)
|
|
252
|
+
|
|
245
253
|
class Meta:
|
|
246
254
|
icon = "image"
|
|
247
255
|
template = "wagtailimages/widgets/image.html"
|
|
@@ -373,6 +373,37 @@ class TestImageBlock(TestImageChooserBlock):
|
|
|
373
373
|
)
|
|
374
374
|
self.assertIsNone(block.clean(value))
|
|
375
375
|
|
|
376
|
+
def test_get_block_by_content_path(self):
|
|
377
|
+
field = StreamPage._meta.get_field("body")
|
|
378
|
+
page = StreamPage(
|
|
379
|
+
body=field.stream_block.to_python(
|
|
380
|
+
[
|
|
381
|
+
{
|
|
382
|
+
"id": "123",
|
|
383
|
+
"type": "image_with_alt",
|
|
384
|
+
"value": {
|
|
385
|
+
"image": self.image.id,
|
|
386
|
+
"alt_text": "Sample alt text",
|
|
387
|
+
"decorative": False,
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
]
|
|
391
|
+
)
|
|
392
|
+
)
|
|
393
|
+
bound_block = field.get_block_by_content_path(page.body, ["123"])
|
|
394
|
+
self.assertEqual(bound_block.block.name, "image_with_alt")
|
|
395
|
+
self.assertIsInstance(bound_block.value, Image)
|
|
396
|
+
self.assertEqual(bound_block.value.id, self.image.id)
|
|
397
|
+
|
|
398
|
+
bound_block = field.get_block_by_content_path(page.body, ["123", "alt_text"])
|
|
399
|
+
self.assertEqual(bound_block.block.name, "alt_text")
|
|
400
|
+
self.assertEqual(bound_block.value, "Sample alt text")
|
|
401
|
+
|
|
402
|
+
bound_block = field.get_block_by_content_path(
|
|
403
|
+
page.body, ["123", "does_not_exist"]
|
|
404
|
+
)
|
|
405
|
+
self.assertIsNone(bound_block)
|
|
406
|
+
|
|
376
407
|
|
|
377
408
|
class TestImageBlockComparison(TestCase):
|
|
378
409
|
comparison_class = compare.StreamFieldComparison
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import re
|
|
1
2
|
import warnings
|
|
2
3
|
from collections import OrderedDict
|
|
3
4
|
|
|
@@ -336,9 +337,12 @@ class MySQLSearchQueryCompiler(BaseSearchQueryCompiler):
|
|
|
336
337
|
|
|
337
338
|
def build_search_query_content(self, query, invert=False):
|
|
338
339
|
if isinstance(query, PlainText):
|
|
339
|
-
|
|
340
|
+
# For Boolean full text search queries in MySQL,
|
|
341
|
+
# non-alphanumeric characters act as separators
|
|
342
|
+
terms = [term for term in re.split(r"\W+", query.query_string) if term]
|
|
343
|
+
|
|
340
344
|
if not terms:
|
|
341
|
-
return
|
|
345
|
+
return SearchQuery("")
|
|
342
346
|
|
|
343
347
|
last_term = terms.pop()
|
|
344
348
|
|
|
@@ -68,6 +68,81 @@ class TestMySQLSearchBackend(BackendTests, TransactionTestCase):
|
|
|
68
68
|
all_other_titles | {"JavaScript: The Definitive Guide"},
|
|
69
69
|
)
|
|
70
70
|
|
|
71
|
+
def test_empty_search(self):
|
|
72
|
+
results = self.backend.search("", models.Book.objects.all())
|
|
73
|
+
self.assertSetEqual(
|
|
74
|
+
{r.title for r in results},
|
|
75
|
+
set(),
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
results = self.backend.search(" ", models.Book.objects.all())
|
|
79
|
+
self.assertSetEqual(
|
|
80
|
+
{r.title for r in results},
|
|
81
|
+
set(),
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
results = self.backend.search("*", models.Book.objects.all())
|
|
85
|
+
self.assertSetEqual(
|
|
86
|
+
{r.title for r in results},
|
|
87
|
+
set(),
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
def test_empty_autocomplete(self):
|
|
91
|
+
results = self.backend.autocomplete("", models.Book.objects.all())
|
|
92
|
+
self.assertSetEqual(
|
|
93
|
+
{r.title for r in results},
|
|
94
|
+
set(),
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
results = self.backend.autocomplete(" ", models.Book.objects.all())
|
|
98
|
+
self.assertSetEqual(
|
|
99
|
+
{r.title for r in results},
|
|
100
|
+
set(),
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
results = self.backend.autocomplete("*", models.Book.objects.all())
|
|
104
|
+
self.assertSetEqual(
|
|
105
|
+
{r.title for r in results},
|
|
106
|
+
set(),
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
def test_symbols_in_search_term(self):
|
|
110
|
+
# symbols as their own tokens should be ignored
|
|
111
|
+
results = self.backend.search("javascript @ parts", models.Book.objects.all())
|
|
112
|
+
self.assertSetEqual(
|
|
113
|
+
{r.title for r in results},
|
|
114
|
+
{"JavaScript: The good parts"},
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
results = self.backend.search("javascript parts @", models.Book.objects.all())
|
|
118
|
+
self.assertSetEqual(
|
|
119
|
+
{r.title for r in results},
|
|
120
|
+
{"JavaScript: The good parts"},
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
results = self.backend.search("@ javascript parts", models.Book.objects.all())
|
|
124
|
+
self.assertSetEqual(
|
|
125
|
+
{r.title for r in results},
|
|
126
|
+
{"JavaScript: The good parts"},
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
# tokens containing both symbols and alphanumerics should not be discarded
|
|
130
|
+
# or treated as equivalent to the same token without symbols
|
|
131
|
+
results = self.backend.search("java@script parts", models.Book.objects.all())
|
|
132
|
+
self.assertSetEqual(
|
|
133
|
+
{r.title for r in results},
|
|
134
|
+
set(),
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
def test_autocomplete_with_symbols(self):
|
|
138
|
+
# the * is not part of the autocomplete mechanism, but if someone includes it
|
|
139
|
+
# we want it to be gracefully ignored
|
|
140
|
+
results = self.backend.autocomplete("parts javasc*", models.Book.objects.all())
|
|
141
|
+
self.assertSetEqual(
|
|
142
|
+
{r.title for r in results},
|
|
143
|
+
{"JavaScript: The good parts"},
|
|
144
|
+
)
|
|
145
|
+
|
|
71
146
|
@skip(
|
|
72
147
|
"The MySQL backend doesn't support choosing individual fields for the search, only (body, title) or (autocomplete) fields may be searched."
|
|
73
148
|
)
|
|
Binary file
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
# Alexander Holmbäck <alexander.holmback@creuna.se>, 2017
|
|
7
7
|
# Jim Brouzoulis <jim.brouzoulis@chalmers.se>, 2017
|
|
8
8
|
# Martin Sandström <martin@marteinn.se>, 2020-2021
|
|
9
|
+
# Matt Westcott <matthew@torchbox.com>, 2024
|
|
9
10
|
# Philip Andersen <renegadevi@codeofmagi.net>, 2018-2019
|
|
10
11
|
# Thomas Kunambi <kunambi@gmail.com>, 2015,2017,2023
|
|
11
12
|
# Thomas Kunambi <kunambi@gmail.com>, 2015
|
|
@@ -16,7 +17,7 @@ msgstr ""
|
|
|
16
17
|
"Report-Msgid-Bugs-To: \n"
|
|
17
18
|
"POT-Creation-Date: 2024-10-21 17:53+0100\n"
|
|
18
19
|
"PO-Revision-Date: 2014-02-19 19:01+0000\n"
|
|
19
|
-
"Last-Translator:
|
|
20
|
+
"Last-Translator: Matt Westcott <matthew@torchbox.com>, 2024\n"
|
|
20
21
|
"Language-Team: Swedish (http://app.transifex.com/torchbox/wagtail/language/"
|
|
21
22
|
"sv/)\n"
|
|
22
23
|
"MIME-Version: 1.0\n"
|
|
@@ -87,8 +88,8 @@ msgstr "Radera"
|
|
|
87
88
|
#, python-format
|
|
88
89
|
msgid "Used %(usage_count)s time"
|
|
89
90
|
msgid_plural "Used %(usage_count)s times"
|
|
90
|
-
msgstr[0] "Använd %(usage_count)
|
|
91
|
-
msgstr[1] "Använd %(usage_count)
|
|
91
|
+
msgstr[0] "Använd %(usage_count)s gång"
|
|
92
|
+
msgstr[1] "Använd %(usage_count)s gånger"
|
|
92
93
|
|
|
93
94
|
#, python-format
|
|
94
95
|
msgid "Are you sure you want to delete this %(snippet_type_name)s?"
|
wagtail/test/snippets/apps.py
CHANGED
|
@@ -7,3 +7,13 @@ class WagtailSnippetsTestsAppConfig(AppConfig):
|
|
|
7
7
|
name = "wagtail.test.snippets"
|
|
8
8
|
label = "snippetstests"
|
|
9
9
|
verbose_name = _("Wagtail snippets tests")
|
|
10
|
+
|
|
11
|
+
def ready(self):
|
|
12
|
+
# Test registration of permission order within the group permissions view,
|
|
13
|
+
# as per https://docs.wagtail.org/en/stable/extending/customizing_group_views.html#customizing-the-group-editor-permissions-ordering
|
|
14
|
+
# Invoking `register` from `ready` confirms that it does not perform any database queries -
|
|
15
|
+
# if it did, it would fail (on a standard test run without --keepdb at least) because the
|
|
16
|
+
# test database hasn't been migrated yet.
|
|
17
|
+
from wagtail.users.permission_order import register
|
|
18
|
+
|
|
19
|
+
register("snippetstests.fancysnippet", order=999)
|
|
@@ -10,7 +10,7 @@ class MigrationTestMixin:
|
|
|
10
10
|
default_operation_and_block_path = []
|
|
11
11
|
app_name = None
|
|
12
12
|
|
|
13
|
-
def init_migration(self, revisions_from=None,
|
|
13
|
+
def init_migration(self, revisions_from=None, operations_and_block_paths=None):
|
|
14
14
|
migration = Migration(
|
|
15
15
|
"test_migration", "wagtail_streamfield_migration_toolkit_test"
|
|
16
16
|
)
|
|
@@ -18,7 +18,7 @@ class MigrationTestMixin:
|
|
|
18
18
|
app_name=self.app_name,
|
|
19
19
|
model_name=self.model.__name__,
|
|
20
20
|
field_name="content",
|
|
21
|
-
operations_and_block_paths=
|
|
21
|
+
operations_and_block_paths=operations_and_block_paths
|
|
22
22
|
or self.default_operation_and_block_path,
|
|
23
23
|
revisions_from=revisions_from,
|
|
24
24
|
)
|
|
@@ -29,11 +29,11 @@ class MigrationTestMixin:
|
|
|
29
29
|
def apply_migration(
|
|
30
30
|
self,
|
|
31
31
|
revisions_from=None,
|
|
32
|
-
|
|
32
|
+
operations_and_block_paths=None,
|
|
33
33
|
):
|
|
34
34
|
migration = self.init_migration(
|
|
35
35
|
revisions_from=revisions_from,
|
|
36
|
-
|
|
36
|
+
operations_and_block_paths=operations_and_block_paths,
|
|
37
37
|
)
|
|
38
38
|
|
|
39
39
|
loader = MigrationLoader(connection=connection)
|
|
@@ -13,35 +13,35 @@ class MigrationNameTest(TestCase, MigrationTestMixin):
|
|
|
13
13
|
app_name = "wagtail_streamfield_migration_toolkit_test"
|
|
14
14
|
|
|
15
15
|
def test_rename(self):
|
|
16
|
-
|
|
16
|
+
operations_and_block_paths = [
|
|
17
17
|
(
|
|
18
18
|
RenameStreamChildrenOperation(old_name="char1", new_name="renamed1"),
|
|
19
19
|
"",
|
|
20
20
|
)
|
|
21
21
|
]
|
|
22
22
|
migration = self.init_migration(
|
|
23
|
-
|
|
23
|
+
operations_and_block_paths=operations_and_block_paths
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
suggested_name = migration.suggest_name()
|
|
27
27
|
self.assertEqual(suggested_name, "rename_char1_to_renamed1")
|
|
28
28
|
|
|
29
29
|
def test_remove(self):
|
|
30
|
-
|
|
30
|
+
operations_and_block_paths = [
|
|
31
31
|
(
|
|
32
32
|
RemoveStreamChildrenOperation(name="char1"),
|
|
33
33
|
"",
|
|
34
34
|
)
|
|
35
35
|
]
|
|
36
36
|
migration = self.init_migration(
|
|
37
|
-
|
|
37
|
+
operations_and_block_paths=operations_and_block_paths
|
|
38
38
|
)
|
|
39
39
|
|
|
40
40
|
suggested_name = migration.suggest_name()
|
|
41
41
|
self.assertEqual(suggested_name, "remove_char1")
|
|
42
42
|
|
|
43
43
|
def test_multiple(self):
|
|
44
|
-
|
|
44
|
+
operations_and_block_paths = [
|
|
45
45
|
(
|
|
46
46
|
RenameStreamChildrenOperation(old_name="char1", new_name="renamed1"),
|
|
47
47
|
"",
|
|
@@ -52,7 +52,7 @@ class MigrationNameTest(TestCase, MigrationTestMixin):
|
|
|
52
52
|
),
|
|
53
53
|
]
|
|
54
54
|
migration = self.init_migration(
|
|
55
|
-
|
|
55
|
+
operations_and_block_paths=operations_and_block_paths
|
|
56
56
|
)
|
|
57
57
|
|
|
58
58
|
suggested_name = migration.suggest_name()
|
|
@@ -7,7 +7,10 @@ from django.db.models.functions import Cast
|
|
|
7
7
|
from django.test import TestCase
|
|
8
8
|
from django.utils import timezone
|
|
9
9
|
|
|
10
|
-
from wagtail.blocks.migrations.operations import
|
|
10
|
+
from wagtail.blocks.migrations.operations import (
|
|
11
|
+
RenameStreamChildrenOperation,
|
|
12
|
+
StreamChildrenToListBlockOperation,
|
|
13
|
+
)
|
|
11
14
|
from wagtail.test.streamfield_migrations import factories, models
|
|
12
15
|
from wagtail.test.streamfield_migrations.testutils import MigrationTestMixin
|
|
13
16
|
|
|
@@ -250,3 +253,45 @@ class TestNullStreamField(BaseMigrationTest):
|
|
|
250
253
|
self.assert_null_content()
|
|
251
254
|
self.apply_migration()
|
|
252
255
|
self.assert_null_content()
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
class StreamChildrenToListBlockOperationTestCase(BaseMigrationTest):
|
|
259
|
+
model = models.SamplePage
|
|
260
|
+
factory = factories.SamplePageFactory
|
|
261
|
+
has_revisions = True
|
|
262
|
+
app_name = "streamfield_migration_tests"
|
|
263
|
+
|
|
264
|
+
def _get_test_instances(self):
|
|
265
|
+
return self.factory.create_batch(
|
|
266
|
+
size=3,
|
|
267
|
+
# Each content stream field has a single char block instance.
|
|
268
|
+
content__0__char1__value="Char Block 1",
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
def test_state_not_shared_across_instances(self):
|
|
272
|
+
"""
|
|
273
|
+
StreamChildrenToListBlockOperation doesn't share state across model instances.
|
|
274
|
+
|
|
275
|
+
As a single operation instance is used to transform the data of multiple model
|
|
276
|
+
instances, we should not store model instance state on the operation instance.
|
|
277
|
+
See https://github.com/wagtail/wagtail/issues/12391.
|
|
278
|
+
"""
|
|
279
|
+
|
|
280
|
+
self.apply_migration(
|
|
281
|
+
operations_and_block_paths=[
|
|
282
|
+
(
|
|
283
|
+
StreamChildrenToListBlockOperation(
|
|
284
|
+
block_name="char1", list_block_name="list1"
|
|
285
|
+
),
|
|
286
|
+
"",
|
|
287
|
+
)
|
|
288
|
+
]
|
|
289
|
+
)
|
|
290
|
+
for instance in self.model.objects.all().annotate(
|
|
291
|
+
raw_content=Cast(F("content"), JSONField())
|
|
292
|
+
):
|
|
293
|
+
new_block = instance.raw_content[0]
|
|
294
|
+
self.assertEqual(new_block["type"], "list1")
|
|
295
|
+
self.assertEqual(len(new_block["value"]), 1)
|
|
296
|
+
self.assertEqual(new_block["value"][0]["type"], "item")
|
|
297
|
+
self.assertEqual(new_block["value"][0]["value"], "Char Block 1")
|
|
@@ -237,6 +237,24 @@ class TestStreamValueAccess(TestCase):
|
|
|
237
237
|
self.assertEqual(fetched_body[1].block_type, "text")
|
|
238
238
|
self.assertEqual(fetched_body[1].value, "bar")
|
|
239
239
|
|
|
240
|
+
def test_can_append_on_queried_instance(self):
|
|
241
|
+
# The test is analog to test_can_append(), but instead of working with the
|
|
242
|
+
# in-memory version from JSONStreamModel.objects.create(), we query a fresh
|
|
243
|
+
# instance from the db.
|
|
244
|
+
# It tests adding data to child blocks that
|
|
245
|
+
# have not yet been lazy loaded. This would previously crash.
|
|
246
|
+
self.json_body = JSONStreamModel.objects.get(pk=self.json_body.pk)
|
|
247
|
+
self.json_body.body.append(("text", "bar"))
|
|
248
|
+
self.json_body.save()
|
|
249
|
+
|
|
250
|
+
fetched_body = JSONStreamModel.objects.get(id=self.json_body.id).body
|
|
251
|
+
self.assertIsInstance(fetched_body, StreamValue)
|
|
252
|
+
self.assertEqual(len(fetched_body), 2)
|
|
253
|
+
self.assertEqual(fetched_body[0].block_type, "text")
|
|
254
|
+
self.assertEqual(fetched_body[0].value, "foo")
|
|
255
|
+
self.assertEqual(fetched_body[1].block_type, "text")
|
|
256
|
+
self.assertEqual(fetched_body[1].value, "bar")
|
|
257
|
+
|
|
240
258
|
def test_complex_assignment(self):
|
|
241
259
|
page = StreamPage(title="Test page", body=[])
|
|
242
260
|
page.body = [
|
|
Binary file
|