From d9f07c1adbdf0b2ec0692da364e2b4736c9d4b6a Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Wed, 27 Mar 2019 09:33:12 +0100 Subject: [PATCH] refactor widget footer, add possibility to delete project --- client/src/components/WidgetFooter.vue | 11 +- .../components/portfolio/ProjectWidget.vue | 43 ++++++- client/src/components/rooms/RoomWidget.vue | 21 ++- client/src/components/rooms/WidgetPopover.vue | 33 +++-- .../graphql/gql/mutations/deleteProject.gql | 7 + server/portfolio/factories.py | 17 +++ .../migrations/0003_auto_20190325_1452.py | 27 ++++ server/portfolio/models.py | 3 + server/portfolio/mutations.py | 36 +++++- server/portfolio/schema.py | 10 +- server/portfolio/serializers.py | 2 +- server/portfolio/tests/__init__.py | 10 ++ .../portfolio/tests/test_project_mutations.py | 62 +++++++++ server/portfolio/tests/test_project_query.py | 120 ++++++++++++++++++ .../test_room_delete_edit_permissions.py | 1 - server/users/services.py | 3 - 16 files changed, 363 insertions(+), 43 deletions(-) create mode 100644 client/src/graphql/gql/mutations/deleteProject.gql create mode 100644 server/portfolio/factories.py create mode 100644 server/portfolio/migrations/0003_auto_20190325_1452.py create mode 100644 server/portfolio/tests/__init__.py create mode 100644 server/portfolio/tests/test_project_mutations.py create mode 100644 server/portfolio/tests/test_project_query.py diff --git a/client/src/components/WidgetFooter.vue b/client/src/components/WidgetFooter.vue index 9ec6e1a5..cc06f221 100644 --- a/client/src/components/WidgetFooter.vue +++ b/client/src/components/WidgetFooter.vue @@ -3,12 +3,10 @@ - + + + @@ -17,7 +15,6 @@ import WidgetPopover from '@/components/rooms/WidgetPopover'; export default { - props: ['on-delete', 'on-edit', 'id', 'entity'], components: { Ellipses, diff --git a/client/src/components/portfolio/ProjectWidget.vue b/client/src/components/portfolio/ProjectWidget.vue index e96bd94e..5e9d277b 100644 --- a/client/src/components/portfolio/ProjectWidget.vue +++ b/client/src/components/portfolio/ProjectWidget.vue @@ -7,19 +7,25 @@ - + + + + + diff --git a/client/src/components/rooms/RoomWidget.vue b/client/src/components/rooms/RoomWidget.vue index e0562355..aff1f758 100644 --- a/client/src/components/rooms/RoomWidget.vue +++ b/client/src/components/rooms/RoomWidget.vue @@ -5,13 +5,9 @@ - + + + @@ -58,27 +54,28 @@ }, methods: { - deleteRoom(id) { + deleteRoom() { + const theId = this.id this.$apollo.mutate({ mutation: DELETE_ROOM_MUTATION, variables: { input: { - id + id: theId } }, update(store, {data: {deleteRoom: {success}}}) { if (success) { const data = store.readQuery({query: ROOMS_QUERY}); if (data) { - data.rooms.edges.splice(data.rooms.edges.findIndex(edge => edge.node.id === id), 1); + data.rooms.edges.splice(data.rooms.edges.findIndex(edge => edge.node.id === theId), 1); store.writeQuery({query: ROOMS_QUERY, data}); } } } }) }, - editRoom(id) { - this.$router.push({name: 'edit-room', params: {id: id}}); + editRoom() { + this.$router.push({name: 'edit-room', params: {id: this.id}}); } } } diff --git a/client/src/components/rooms/WidgetPopover.vue b/client/src/components/rooms/WidgetPopover.vue index 45d53c24..e5a8f8c3 100644 --- a/client/src/components/rooms/WidgetPopover.vue +++ b/client/src/components/rooms/WidgetPopover.vue @@ -1,14 +1,13 @@