diff --git a/client/cypress/integration/school-class.spec.js b/client/cypress/integration/school-class.spec.js
index a018e9f8..6a036581 100644
--- a/client/cypress/integration/school-class.spec.js
+++ b/client/cypress/integration/school-class.spec.js
@@ -151,9 +151,7 @@ describe('Class Management', () => {
cy.get('[data-cy=edit-class-name-link]').click();
cy.get('[data-cy=edit-class-name-input]').type('{selectall}{backspace}').type(className);
- cy.get('[data-cy=save-button]').click();
- cy.get('[data-cy=class-name-heading]').should('equal', className);
-
-
+ cy.get('[data-cy=modal-save-button]').click();
+ cy.get('[data-cy=school-class-name]').should('contain', className);
})
});
diff --git a/client/src/App.vue b/client/src/App.vue
index 3bf87810..210e0254 100644
--- a/client/src/App.vue
+++ b/client/src/App.vue
@@ -23,6 +23,7 @@
import NewObjectiveWizard from '@/components/objective-groups/NewObjectiveWizard';
import NewNoteWizard from '@/components/notes/NewNoteWizard';
import EditNoteWizard from '@/components/notes/EditNoteWizard';
+ import EditClassNameWizard from '@/components/school-class/EditClassNameWizard';
import FullscreenImage from '@/components/FullscreenImage';
import FullscreenInfographic from '@/components/FullscreenInfographic';
import FullscreenVideo from '@/components/FullscreenVideo';
@@ -49,6 +50,7 @@
NewObjectiveWizard,
NewNoteWizard,
EditNoteWizard,
+ EditClassNameWizard,
FullscreenImage,
FullscreenInfographic,
FullscreenVideo
diff --git a/client/src/components/modules/Module.vue b/client/src/components/modules/Module.vue
index 43c041c1..997f8c08 100644
--- a/client/src/components/modules/Module.vue
+++ b/client/src/components/modules/Module.vue
@@ -31,7 +31,6 @@
+
+
diff --git a/client/src/components/school-class/EditClassNameWizard.vue b/client/src/components/school-class/EditClassNameWizard.vue
new file mode 100644
index 00000000..8bf6c222
--- /dev/null
+++ b/client/src/components/school-class/EditClassNameWizard.vue
@@ -0,0 +1,74 @@
+
+
+ Klasse bearbeiten
+
+
+
+
+
+
+
diff --git a/client/src/graphql/gql/mutations/updateSchoolClass.gql b/client/src/graphql/gql/mutations/updateSchoolClass.gql
new file mode 100644
index 00000000..d9ff3217
--- /dev/null
+++ b/client/src/graphql/gql/mutations/updateSchoolClass.gql
@@ -0,0 +1,8 @@
+mutation UpdateSchoolClass($input: UpdateSchoolClassInput!) {
+ updateSchoolClass(input: $input) {
+ success
+ schoolClass {
+ name
+ }
+ }
+}
diff --git a/client/src/pages/myClass.vue b/client/src/pages/myClass.vue
index 1b15b85d..740c0581 100644
--- a/client/src/pages/myClass.vue
+++ b/client/src/pages/myClass.vue
@@ -6,6 +6,7 @@
:name="me.selectedClass.name"
:members="me.selectedClass.members"
:teacher="me.isTeacher"
+ :id="me.selectedClass.id"
@remove="remove"
@add="add"
>
diff --git a/client/src/store/index.js b/client/src/store/index.js
index 5c9a634d..42328442 100644
--- a/client/src/store/index.js
+++ b/client/src/store/index.js
@@ -166,6 +166,9 @@ export default new Vuex.Store({
},
editModule({commit}, payload) {
commit('setEditModule', payload)
+ },
+ editClassName({commit, dispatch}, payload) {
+ dispatch('showModal', 'edit-class-name-wizard');
}
},
diff --git a/server/users/mutations.py b/server/users/mutations.py
index 4a5f6c7d..79817c0c 100644
--- a/server/users/mutations.py
+++ b/server/users/mutations.py
@@ -164,9 +164,30 @@ class AddRemoveMember(relay.ClientIDMutation):
return cls(success=True)
+class UpdateSchoolClass(relay.ClientIDMutation):
+ class Input:
+ id = graphene.ID(required=True)
+ name = graphene.String()
+
+ success = graphene.Boolean()
+ school_class = graphene.Field(SchoolClassNode)
+
+ @classmethod
+ def mutate_and_get_payload(cls, root, info, **kwargs):
+ id = kwargs.get('id')
+ name = kwargs.get('name')
+
+ school_class = get_object(SchoolClass, id)
+ school_class.name = name
+ school_class.save()
+
+ return cls(success=True, school_class=school_class)
+
+
class ProfileMutations:
update_password = UpdatePassword.Field()
update_avatar = UpdateAvatar.Field()
update_setting = UpdateSetting.Field()
join_class = JoinClass.Field()
add_remove_member = AddRemoveMember.Field()
+ update_school_class = UpdateSchoolClass.Field()