Merged in feature/cms-improvements-ms-517-ms-518-ms-519 (pull request #108)

Feature/cms improvements ms 517 ms 518 ms 519

Approved-by: Daniel Egger
This commit is contained in:
Ramon Wenger 2022-06-22 15:07:49 +00:00
commit 2fbd878387
13 changed files with 113 additions and 15 deletions

View File

@ -17,7 +17,7 @@ describe('Assignments', () => {
assignment: { assignment: {
title: 'Ein Auftragstitel', title: 'Ein Auftragstitel',
solution: '<p>Eine Lösung</p>', solution: '<p>Eine Lösung</p>',
assignment: 'Ein Auftrag', assignment: '<p>Ein <b>Auftrag</b></p>',
submissions: [studentSubmission], submissions: [studentSubmission],
}, },
}, },
@ -48,6 +48,7 @@ describe('Assignments', () => {
it('it does not display HTML tags', () => { it('it does not display HTML tags', () => {
cy.visit('/module/lohn-und-budget/submissions/QXNzaWdubWVudE5vZGU6MQ=='); cy.visit('/module/lohn-und-budget/submissions/QXNzaWdubWVudE5vZGU6MQ==');
cy.getByDataCy('assignment-main-text').should('have.text', 'Ein Auftrag');
cy.getByDataCy('assignment-solution').should('have.text', 'Eine Lösung'); cy.getByDataCy('assignment-solution').should('have.text', 'Eine Lösung');
}); });

View File

@ -1,9 +1,11 @@
<template> <template>
<!-- eslint-disable vue/no-v-html --> <!-- eslint-disable vue/no-v-html -->
<div class="assignment-with-submissions"> <div class="assignment-with-submissions">
<p class="assignment-with-submissions__text"> <p
{{ assignment.assignment }} class="assignment-with-submissions__text"
</p> data-cy="assignment-main-text"
v-html="assignment.assignment"
/>
<div> <div>
<a <a
@ -145,6 +147,13 @@
margin-top: $large-spacing; margin-top: $large-spacing;
} }
/deep/ ul {
@include list-parent;
}
/deep/ li {
@include list-child;
}
} }
.submissions { .submissions {

View File

@ -327,11 +327,11 @@
/deep/ .text-block { /deep/ .text-block {
ul { ul {
padding-left: 25px; @include list-parent;
} }
li { li {
list-style: disc; @include list-child;
line-height: 1.5; line-height: 1.5;
} }
} }

View File

@ -4,9 +4,11 @@
:data-scrollto="value.id" :data-scrollto="value.id"
class="assignment" class="assignment"
> >
<p class="assignment__assignment-text"> <p
{{ assignment.assignment }} class="assignment__main-text"
</p> data-cy="assignment-main-text"
v-html="assignment.assignment"
/>
<solution <solution
:value="solution" :value="solution"
@ -273,6 +275,16 @@
margin-bottom: 1rem; margin-bottom: 1rem;
} }
&__main-text {
/deep/ ul{
@include list-parent
}
/deep/ li {
@include list-child;
}
}
&__toggle-input-container { &__toggle-input-container {
display: flex; display: flex;
margin-bottom: 15px; margin-bottom: 15px;

View File

@ -113,11 +113,11 @@
} }
&__list { &__list {
padding-left: $medium-spacing; @include list-parent;
} }
&__list-item { &__list-item {
list-style: disc; @include list-child;
} }
&__text { &__text {

View File

@ -75,7 +75,7 @@
} }
& ul { & ul {
padding-left: 25px; @include list-parent;
} }
& p + ul { & p + ul {
@ -83,7 +83,7 @@
} }
& li { & li {
list-style: disc; @include list-child;
line-height: 1.5; line-height: 1.5;
} }

View File

@ -245,3 +245,12 @@
width: $small-icon-dimension; width: $small-icon-dimension;
height: $small-icon-dimension; height: $small-icon-dimension;
} }
@mixin list-parent {
padding-left: $medium-spacing;
}
@mixin list-child {
list-style: disc;
}

View File

@ -30,6 +30,10 @@ a {
box-sizing: border-box; box-sizing: border-box;
} }
b {
font-weight: bold;
}
h1 { h1 {
font-size: 2rem; font-size: 2rem;
font-weight: 800; font-weight: 800;

View File

@ -0,0 +1,19 @@
# Generated by Django 3.2.13 on 2022-06-15 15:40
from django.db import migrations
import wagtail.core.fields
class Migration(migrations.Migration):
dependencies = [
('assignments', '0013_auto_20210315_2143'),
]
operations = [
migrations.AlterField(
model_name='assignment',
name='assignment',
field=wagtail.core.fields.RichTextField(),
),
]

View File

@ -13,7 +13,7 @@ from core.constants import DEFAULT_RICH_TEXT_FEATURES
@register_snippet @register_snippet
class Assignment(index.Indexed, TimeStampedModel): class Assignment(index.Indexed, TimeStampedModel):
title = models.CharField(max_length=255) title = models.CharField(max_length=255)
assignment = models.TextField() assignment = RichTextField(features=DEFAULT_RICH_TEXT_FEATURES)
solution = RichTextField(null=True, blank=True, features=DEFAULT_RICH_TEXT_FEATURES) solution = RichTextField(null=True, blank=True, features=DEFAULT_RICH_TEXT_FEATURES)
deleted = models.BooleanField(default=False) deleted = models.BooleanField(default=False)
owner = models.ForeignKey(get_user_model(), owner = models.ForeignKey(get_user_model(),

View File

@ -0,0 +1,24 @@
# Generated by Django 3.2.13 on 2022-06-15 15:40
import assignments.models
from django.db import migrations
import surveys.models
import wagtail.core.blocks
import wagtail.core.fields
import wagtail.images.blocks
import wagtail.snippets.blocks
class Migration(migrations.Migration):
dependencies = [
('books', '0032_auto_20211213_1342'),
]
operations = [
migrations.AlterField(
model_name='contentblock',
name='contents',
field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul', 'bold']))])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock(required=False)), ('basic_knowledge', wagtail.core.blocks.PageChooserBlock(page_type=['basicknowledge.BasicKnowledge'], required=True))])), ('assignment', wagtail.core.blocks.StructBlock([('assignment_id', wagtail.snippets.blocks.SnippetChooserBlock(assignments.models.Assignment))])), ('survey', wagtail.core.blocks.StructBlock([('survey_id', wagtail.snippets.blocks.SnippetChooserBlock(surveys.models.Survey))])), ('image_block', wagtail.images.blocks.ImageChooserBlock()), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('solution', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul', 'bold']))], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('infogram_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock()), ('title', wagtail.core.blocks.TextBlock())])), ('genially_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock())])), ('thinglink_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock())])), ('subtitle', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock())])), ('instruction', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock()), ('text', wagtail.core.blocks.TextBlock(required=False))])), ('module_room_slug', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock())])), ('content_list_item', wagtail.core.blocks.StreamBlock([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul', 'bold']))])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock(required=False)), ('basic_knowledge', wagtail.core.blocks.PageChooserBlock(page_type=['basicknowledge.BasicKnowledge'], required=True))])), ('assignment', wagtail.core.blocks.StructBlock([('assignment_id', wagtail.snippets.blocks.SnippetChooserBlock(assignments.models.Assignment))])), ('survey', wagtail.core.blocks.StructBlock([('survey_id', wagtail.snippets.blocks.SnippetChooserBlock(surveys.models.Survey))])), ('image_block', wagtail.images.blocks.ImageChooserBlock()), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('solution', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul', 'bold']))], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('infogram_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock()), ('title', wagtail.core.blocks.TextBlock())])), ('genially_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock())])), ('thinglink_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock())])), ('subtitle', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock())])), ('instruction', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock()), ('text', wagtail.core.blocks.TextBlock(required=False))])), ('module_room_slug', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock())]))]))], blank=True, null=True),
),
]

View File

@ -1,2 +1,2 @@
DEFAULT_RICH_TEXT_FEATURES = ['ul', ] DEFAULT_RICH_TEXT_FEATURES = ['ul', 'bold']
INSTRUMENTS_RICH_TEXT_FEATURES = ['bold', 'ul', 'brand', 'secondary'] INSTRUMENTS_RICH_TEXT_FEATURES = ['bold', 'ul', 'brand', 'secondary']

View File

@ -0,0 +1,20 @@
# Generated by Django 3.2.13 on 2022-06-15 15:40
from django.db import migrations
import wagtail.core.blocks
import wagtail.core.fields
class Migration(migrations.Migration):
dependencies = [
('rooms', '0010_room_restricted'),
]
operations = [
migrations.AlterField(
model_name='roomentry',
name='contents',
field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul', 'bold']))])), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())]))], blank=True, null=True),
),
]