Merge branch 'feature/add-room-cherry-picked'
This commit is contained in:
commit
ba2b77199a
5
Pipfile
5
Pipfile
|
|
@ -21,8 +21,9 @@ python-dotenv = "==0.7.1"
|
||||||
dj-database-url = "==0.4.1"
|
dj-database-url = "==0.4.1"
|
||||||
raven = "==6.9.0"
|
raven = "==6.9.0"
|
||||||
django-extensions = "==1.9.8"
|
django-extensions = "==1.9.8"
|
||||||
graphene-django = "==2.0.0"
|
graphene-django = "==2.2.0"
|
||||||
django-filter = "==2.0.0.dev1"
|
django-filter = "==2.0.0"
|
||||||
|
djangorestframework = "==3.8.2"
|
||||||
pillow = "==5.0.0"
|
pillow = "==5.0.0"
|
||||||
wagtail = "==2.2.2"
|
wagtail = "==2.2.2"
|
||||||
django-cors-headers = "==2.2.0"
|
django-cors-headers = "==2.2.0"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "a9b9215ef6546bd1d78142e5a1918cb4ba623ff8dd878db3761baa0866c39527"
|
"sha256": "2341eacc0bfdcc8c231c5ebf696c89360052a264240118f3b509c927aeaf611b"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
|
@ -41,18 +41,18 @@
|
||||||
},
|
},
|
||||||
"boto3": {
|
"boto3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:3937eaba7cc429d1593824397f1d7dda4c9565c1269e8d3f665cee3c1b1b955c",
|
"sha256:2152e0da8098665e6a03bbbde1de1b4fafdef7151010d1f0e53693a3f2a1deb0",
|
||||||
"sha256:ae1bc72a3921807ef8c0daa6c4bd147e6caa630df263e5ea5e8c36535e17ee73"
|
"sha256:323660fd1aa9c95fe90003f44c5fc37cbb891a8b506fa346967d14edcbcb90a4"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==1.8.9"
|
"version": "==1.9.4"
|
||||||
},
|
},
|
||||||
"botocore": {
|
"botocore": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1294d1422b278dac28869d5b96156171dd8d5b609da28fec006add8a81a31dfa",
|
"sha256:3b2cab368572ee987a6236321ddea491e4253c819009c87ebc9e42e60371e3ae",
|
||||||
"sha256:91c32b97dd2f1046b1de3ce5c8bc19cf4993bc631864c9fcbf51f261bc3a7aab"
|
"sha256:7834eba53c6bedea21eb76f25a39e477dede3a24aeb51ff19c0248ea8348f007"
|
||||||
],
|
],
|
||||||
"version": "==1.11.9"
|
"version": "==1.12.4"
|
||||||
},
|
},
|
||||||
"certifi": {
|
"certifi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
|
@ -123,11 +123,11 @@
|
||||||
},
|
},
|
||||||
"django-filter": {
|
"django-filter": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:57c12c8ed40861e8ec7219ea65adcdd92ed0ea4c5b76a86f9ff9216a80dd5af7",
|
"sha256:6f4e4bc1a11151178520567b50320e5c32f8edb552139d93ea3e30613b886f56",
|
||||||
"sha256:57c5507b0011058a7f2d2227b7ef9fea27e69e53ef65da6d2fbd0b27cdaafed3"
|
"sha256:86c3925020c27d072cdae7b828aaa5d165c2032a629abbe3c3a1be1edae61c58"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==2.0.0.dev1"
|
"version": "==2.0.0"
|
||||||
},
|
},
|
||||||
"django-libsass": {
|
"django-libsass": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
|
@ -168,7 +168,7 @@
|
||||||
"sha256:b6714c3e4b0f8d524f193c91ecf5f5450092c2145439ac2769711f7eba89a9d9",
|
"sha256:b6714c3e4b0f8d524f193c91ecf5f5450092c2145439ac2769711f7eba89a9d9",
|
||||||
"sha256:c375e4f95a3a64fccac412e36fb42ba36881e52313ec021ef410b40f67cddca4"
|
"sha256:c375e4f95a3a64fccac412e36fb42ba36881e52313ec021ef410b40f67cddca4"
|
||||||
],
|
],
|
||||||
"markers": "python_version != '3.3.*' and python_version >= '2.7' and python_version != '3.2.*' and python_version != '3.0.*' and python_version != '3.1.*'",
|
"index": "pypi",
|
||||||
"version": "==3.8.2"
|
"version": "==3.8.2"
|
||||||
},
|
},
|
||||||
"docutils": {
|
"docutils": {
|
||||||
|
|
@ -195,10 +195,11 @@
|
||||||
},
|
},
|
||||||
"faker": {
|
"faker": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:ea7cfd3aeb1544732d08bd9cfba40c5b78e3a91e17b1a0698ab81bfc5554c628",
|
"sha256:74b32991f8e08e4f2f84858b919eca253becfaec4b3fa5fcff7fdbd70d5d78b1",
|
||||||
"sha256:f6d67f04abfb2b4bea7afc7fa6c18cf4c523a67956e455668be9ae42bccc21ad"
|
"sha256:c2ce42dd8361e6d392276006d757532562463c8642b1086709584200b7fd7758"
|
||||||
],
|
],
|
||||||
"version": "==0.9.0"
|
"markers": "python_version >= '2.7' and python_version != '3.1.*' and python_version != '3.0.*' and python_version != '3.2.*'",
|
||||||
|
"version": "==0.9.1"
|
||||||
},
|
},
|
||||||
"graphene": {
|
"graphene": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
|
@ -209,11 +210,11 @@
|
||||||
},
|
},
|
||||||
"graphene-django": {
|
"graphene-django": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:5cabf46b59f242a533fe1df1912c87d5ad6606246937609be2e6c9086cfdf7a4",
|
"sha256:3afd81d47c8b702650e05cc1179fac1cfceae991d241bb164d51f28bed9ec95c",
|
||||||
"sha256:70d9358bc48c806b6a9458e8344f0a1211cd1f1ef923a092aa55e6bcacc2c3fc"
|
"sha256:760a18068feb5457e2ec00d2447c09b2fbac2a6b8c32cc8be2abce3752107ad3"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==2.0.0"
|
"version": "==2.2.0"
|
||||||
},
|
},
|
||||||
"graphql-core": {
|
"graphql-core": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
|
@ -250,14 +251,6 @@
|
||||||
],
|
],
|
||||||
"version": "==2.7"
|
"version": "==2.7"
|
||||||
},
|
},
|
||||||
"iso8601": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:210e0134677cc0d02f6028087fee1df1e1d76d372ee1db0bf30bf66c5c1c89a3",
|
|
||||||
"sha256:49c4b20e1f38aa5cf109ddcd39647ac419f928512c869dc01d5c7098eddede82",
|
|
||||||
"sha256:bbbae5fb4a7abfe71d4688fd64bff70b91bbd74ef6a99d964bab18f7fdf286dd"
|
|
||||||
],
|
|
||||||
"version": "==0.1.12"
|
|
||||||
},
|
|
||||||
"jmespath": {
|
"jmespath": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:6a81d4c9aa62caf061cb517b4d9ad1dd300374cd4706997aff9cd6aedd61fc64",
|
"sha256:6a81d4c9aa62caf061cb517b4d9ad1dd300374cd4706997aff9cd6aedd61fc64",
|
||||||
|
|
@ -403,7 +396,7 @@
|
||||||
"sha256:63b52e3c866428a224f97cab011de738c36aec0185aa91cfacd418b5d58911d1",
|
"sha256:63b52e3c866428a224f97cab011de738c36aec0185aa91cfacd418b5d58911d1",
|
||||||
"sha256:ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a"
|
"sha256:ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a"
|
||||||
],
|
],
|
||||||
"markers": "python_version != '3.3.*' and python_version < '4' and python_version != '3.2.*' and python_version != '3.1.*' and python_version >= '2.6' and python_version != '3.0.*'",
|
"markers": "python_version != '3.3.*' and python_version != '3.2.*' and python_version < '4' and python_version != '3.1.*' and python_version >= '2.6' and python_version != '3.0.*'",
|
||||||
"version": "==2.19.1"
|
"version": "==2.19.1"
|
||||||
},
|
},
|
||||||
"rjsmin": {
|
"rjsmin": {
|
||||||
|
|
@ -467,7 +460,7 @@
|
||||||
"sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
|
"sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
|
||||||
"sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
|
"sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
|
||||||
],
|
],
|
||||||
"markers": "python_version != '3.0.*' and python_version != '3.3.*' and python_version != '3.1.*' and python_version < '4' and python_version >= '2.6' and python_version != '3.2.*'",
|
"markers": "python_version != '3.1.*' and python_version != '3.0.*' and python_version < '4' and python_version >= '2.6' and python_version != '3.2.*' and python_version != '3.3.*'",
|
||||||
"version": "==1.23"
|
"version": "==1.23"
|
||||||
},
|
},
|
||||||
"wagtail": {
|
"wagtail": {
|
||||||
|
|
@ -506,13 +499,21 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"develop": {
|
"develop": {
|
||||||
|
"appnope": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:5b26757dc6f79a3b7dc9fab95359328d5747fcb2409d331ea66d0272b90ab2a0",
|
||||||
|
"sha256:8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71"
|
||||||
|
],
|
||||||
|
"markers": "sys_platform == 'darwin'",
|
||||||
|
"version": "==0.1.0"
|
||||||
|
},
|
||||||
"awscli": {
|
"awscli": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:ef7145fe16d4995121868237dc30051dc9238af6211f9dc57cfb1937ea962990",
|
"sha256:27009baa405935d7229ca551d9433e029a05d68fbc99548e1cbe8fc759b5af43",
|
||||||
"sha256:f953de87b96fc9d237603146c34b0b979ebc31e0f2eb43ce77deb7ab563b47dd"
|
"sha256:6d1509d1b00618ad2bda119eb6e6f1a427b22eff006c0f705d3f8b5e3fea0932"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==1.16.9"
|
"version": "==1.16.14"
|
||||||
},
|
},
|
||||||
"backcall": {
|
"backcall": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
|
@ -523,10 +524,10 @@
|
||||||
},
|
},
|
||||||
"botocore": {
|
"botocore": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1294d1422b278dac28869d5b96156171dd8d5b609da28fec006add8a81a31dfa",
|
"sha256:3b2cab368572ee987a6236321ddea491e4253c819009c87ebc9e42e60371e3ae",
|
||||||
"sha256:91c32b97dd2f1046b1de3ce5c8bc19cf4993bc631864c9fcbf51f261bc3a7aab"
|
"sha256:7834eba53c6bedea21eb76f25a39e477dede3a24aeb51ff19c0248ea8348f007"
|
||||||
],
|
],
|
||||||
"version": "==1.11.9"
|
"version": "==1.12.4"
|
||||||
},
|
},
|
||||||
"colorama": {
|
"colorama": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
|
@ -699,7 +700,7 @@
|
||||||
"sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
|
"sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
|
||||||
"sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
|
"sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
|
||||||
],
|
],
|
||||||
"markers": "python_version != '3.0.*' and python_version != '3.3.*' and python_version != '3.1.*' and python_version < '4' and python_version >= '2.6' and python_version != '3.2.*'",
|
"markers": "python_version != '3.1.*' and python_version != '3.0.*' and python_version < '4' and python_version >= '2.6' and python_version != '3.2.*' and python_version != '3.3.*'",
|
||||||
"version": "==1.23"
|
"version": "==1.23"
|
||||||
},
|
},
|
||||||
"wcwidth": {
|
"wcwidth": {
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,24 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="new-room">
|
<div class="new-room">
|
||||||
<div class="new-room__content">
|
<div class="new-room__content">
|
||||||
<h1 class="new-room__heading">Neues Board</h1>
|
<h1 class="new-room__heading">Neues Board {{room.title}}</h1>
|
||||||
|
|
||||||
<h2 class="new-room__property-heading">Titel</h2>
|
<h2 class="new-room__property-heading">Titel</h2>
|
||||||
<input class="skillbox-input new-room__input">
|
<input class="skillbox-input new-room__input" v-model="room.title">
|
||||||
<h2 class="new-room__property-heading">Beschreibung</h2>
|
<h2 class="new-room__property-heading">Beschreibung</h2>
|
||||||
<textarea class="skillbox-textarea new-room__textarea"></textarea>
|
<textarea class="skillbox-textarea new-room__textarea" v-model="room.description"></textarea>
|
||||||
<h2 class="new-room__property-heading">Farbe</h2>
|
<h2 class="new-room__property-heading">Farbe</h2>
|
||||||
<room-colors></room-colors>
|
<room-colors
|
||||||
|
:selected-color="room.appearance"
|
||||||
|
v-on:input="updateColor"
|
||||||
|
></room-colors>
|
||||||
</div>
|
</div>
|
||||||
<div class="new-room__footer">
|
<div class="new-room__footer">
|
||||||
<button class="button button--primary new-room__save-button">Speichern</button>
|
<button
|
||||||
|
class="button button--primary new-room__save-button"
|
||||||
|
@click="addRoom(room)"
|
||||||
|
>Speichern
|
||||||
|
</button>
|
||||||
<button class="button">Abbrechen</button>
|
<button class="button">Abbrechen</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -21,13 +28,58 @@
|
||||||
<script>
|
<script>
|
||||||
import RoomColors from '@/components/rooms/RoomColors';
|
import RoomColors from '@/components/rooms/RoomColors';
|
||||||
|
|
||||||
|
import ADD_ROOM_MUTATION from '@/graphql/gql/mutations/addRoom.gql';
|
||||||
|
import ROOMS_QUERY from '@/graphql/gql/roomsQuery.gql';
|
||||||
|
|
||||||
|
const defaultColor = 'blue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
RoomColors
|
RoomColors
|
||||||
},
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
room: {
|
||||||
|
appearance: defaultColor,
|
||||||
|
title: '',
|
||||||
|
description: '',
|
||||||
|
userGroup: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
updateColor(newColor) {
|
||||||
|
this.room.appearance = newColor;
|
||||||
|
this.$store.dispatch('setSpecialContainerClass', newColor);
|
||||||
|
},
|
||||||
|
addRoom(room) {
|
||||||
|
this.$apollo.mutate({
|
||||||
|
mutation: ADD_ROOM_MUTATION,
|
||||||
|
variables: {
|
||||||
|
input: {
|
||||||
|
title: room.title,
|
||||||
|
description: room.description,
|
||||||
|
userGroup: 1,
|
||||||
|
appearance: room.appearance
|
||||||
|
}
|
||||||
|
},
|
||||||
|
update: (store, {data: {addRoom}}) => {
|
||||||
|
const data = store.readQuery({query: ROOMS_QUERY});
|
||||||
|
if (data.allRooms) {
|
||||||
|
data.allRooms.edges.push({node: addRoom});
|
||||||
|
store.writeQuery({query: ROOMS_QUERY, data});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).then(() => {
|
||||||
|
this.$router.push('/rooms');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
this.$store.dispatch('setSpecialContainerClass', 'red');
|
this.$store.dispatch('setSpecialContainerClass', defaultColor);
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="room-colors">
|
<div class="room-colors">
|
||||||
<div v-for="color in colors" class="room-colors__color-wrapper"
|
<div v-for="(color, index) in colors"
|
||||||
:class="{'room-colors__color-wrapper--selected': color.selected}">
|
:key="index"
|
||||||
|
class="room-colors__color-wrapper"
|
||||||
|
@click="$emit('input', color.name)"
|
||||||
|
:class="{'room-colors__color-wrapper--selected': selectedColor === color.name}">
|
||||||
<div class="room-colors__color" :class="'room-colors__color--' + color.name">
|
<div class="room-colors__color" :class="'room-colors__color--' + color.name">
|
||||||
<tick class="room-colors__selected-icon" v-if="color.selected"></tick>
|
<tick class="room-colors__selected-icon" v-if="selectedColor === color.name"></tick>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -13,12 +16,13 @@
|
||||||
import Tick from '@/components/icons/Tick';
|
import Tick from '@/components/icons/Tick';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
props: ['selected-color'],
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
colors: [
|
colors: [
|
||||||
{
|
{
|
||||||
name: 'yellow',
|
name: 'yellow'
|
||||||
selected: true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'blue'
|
name: 'blue'
|
||||||
|
|
@ -41,6 +45,7 @@
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import "@/styles/_variables.scss";
|
@import "@/styles/_variables.scss";
|
||||||
|
@import "@/styles/_mixins.scss";
|
||||||
|
|
||||||
.room-colors {
|
.room-colors {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -68,18 +73,7 @@
|
||||||
justify-items: center;
|
justify-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
&--yellow {
|
@include skillbox-colors;
|
||||||
background-color: $color-accent-1;
|
|
||||||
}
|
|
||||||
&--blue {
|
|
||||||
background-color: $color-accent-2;
|
|
||||||
}
|
|
||||||
&--red {
|
|
||||||
background-color: $color-accent-3;
|
|
||||||
}
|
|
||||||
&--green {
|
|
||||||
background-color: $color-accent-4;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -56,15 +56,7 @@
|
||||||
-ms-grid-rows: 210px 1fr;
|
-ms-grid-rows: 210px 1fr;
|
||||||
-ms-grid-columns: 1fr;
|
-ms-grid-columns: 1fr;
|
||||||
|
|
||||||
&--red {
|
@include skillbox-colors;
|
||||||
background-color: $red;
|
|
||||||
}
|
|
||||||
&--green {
|
|
||||||
background-color: $green;
|
|
||||||
}
|
|
||||||
&--brown {
|
|
||||||
background-color: $brown;
|
|
||||||
}
|
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
width: 30px;
|
width: 30px;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
mutation AddRoomMutation($input: RoomMutationInput!) {
|
||||||
|
addRoom(input: $input) {
|
||||||
|
id
|
||||||
|
title
|
||||||
|
slug
|
||||||
|
title
|
||||||
|
description
|
||||||
|
appearance
|
||||||
|
userGroup
|
||||||
|
__typename
|
||||||
|
clientMutationId
|
||||||
|
errors {
|
||||||
|
field
|
||||||
|
messages
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#{
|
||||||
|
# "input": {
|
||||||
|
# "title": "Neuer Raum",
|
||||||
|
# "description": "So eine Beschreibung",
|
||||||
|
# "userGroup": 4
|
||||||
|
#}
|
||||||
|
#}
|
||||||
|
|
@ -3,6 +3,7 @@ query UserGroupsQuery {
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
id
|
id
|
||||||
|
pk
|
||||||
name
|
name
|
||||||
year
|
year
|
||||||
isDeleted
|
isDeleted
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "@/styles/_variables.scss";
|
@import "@/styles/_variables.scss";
|
||||||
|
@import "@/styles/_mixins.scss";
|
||||||
|
|
||||||
.skillbox {
|
.skillbox {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
|
@ -64,17 +65,7 @@
|
||||||
-ms-grid-rows: auto 32px 1fr; // 1 extra row for gap
|
-ms-grid-rows: auto 32px 1fr; // 1 extra row for gap
|
||||||
-ms-grid-columns: 1fr;
|
-ms-grid-columns: 1fr;
|
||||||
|
|
||||||
&--red { // todo: define a better name when usage is clear
|
@include skillbox-colors;
|
||||||
background-color: $red;
|
|
||||||
}
|
|
||||||
|
|
||||||
&--green { // todo: define a better name when usage is clear
|
|
||||||
background-color: $green;
|
|
||||||
}
|
|
||||||
|
|
||||||
&--brown { // todo: define a better name when usage is clear
|
|
||||||
background-color: $brown;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__header {
|
&__header {
|
||||||
grid-area: h;
|
grid-area: h;
|
||||||
|
|
|
||||||
|
|
@ -11,3 +11,19 @@
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
fill: $color-darkgrey-1;
|
fill: $color-darkgrey-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@mixin skillbox-colors {
|
||||||
|
&--yellow {
|
||||||
|
background-color: $color-accent-1;
|
||||||
|
}
|
||||||
|
&--blue {
|
||||||
|
background-color: $color-accent-2;
|
||||||
|
}
|
||||||
|
&--red {
|
||||||
|
background-color: $color-accent-3;
|
||||||
|
}
|
||||||
|
&--green {
|
||||||
|
background-color: $color-accent-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ from api import graphene_wagtail
|
||||||
from book.schema.mutations import BookMutations
|
from book.schema.mutations import BookMutations
|
||||||
from filteredbook.schema import BookQuery
|
from filteredbook.schema import BookQuery
|
||||||
from objectives.schema import ObjectivesQuery
|
from objectives.schema import ObjectivesQuery
|
||||||
from rooms.schema import RoomsQuery
|
from rooms.schema import RoomsQuery, RoomMutations
|
||||||
from user.schema import UsersQuery
|
from user.schema import UsersQuery
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -20,7 +20,7 @@ class Query(UsersQuery, RoomsQuery, ObjectivesQuery, BookQuery, graphene.ObjectT
|
||||||
debug = graphene.Field(DjangoDebug, name='__debug')
|
debug = graphene.Field(DjangoDebug, name='__debug')
|
||||||
|
|
||||||
|
|
||||||
class Mutation(graphene.ObjectType, BookMutations):
|
class Mutation(BookMutations, RoomMutations, graphene.ObjectType):
|
||||||
|
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
debug = graphene.Field(DjangoDebug, name='__debug')
|
debug = graphene.Field(DjangoDebug, name='__debug')
|
||||||
|
|
|
||||||
|
|
@ -177,7 +177,7 @@ data = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'title': 'Interview «Mein neues Umfeld»',
|
'title': 'Interview «Mein neues Umfeld»',
|
||||||
'appearance': 'brown'
|
'appearance': 'blue'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,10 @@ import graphene
|
||||||
from graphene import relay
|
from graphene import relay
|
||||||
from graphene_django import DjangoObjectType
|
from graphene_django import DjangoObjectType
|
||||||
from graphene_django.filter import DjangoFilterConnectionField
|
from graphene_django.filter import DjangoFilterConnectionField
|
||||||
|
from graphene_django.rest_framework.mutation import SerializerMutation
|
||||||
|
|
||||||
from rooms.models import Room, RoomEntry
|
from rooms.models import Room, RoomEntry
|
||||||
|
from rooms.serializers import RoomSerializer
|
||||||
from user.schema import UserNode
|
from user.schema import UserNode
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -37,8 +39,9 @@ class RoomNode(DjangoObjectType):
|
||||||
|
|
||||||
|
|
||||||
class RoomsQuery(object):
|
class RoomsQuery(object):
|
||||||
room = graphene.Field(RoomNode, slug=graphene.String(), id=graphene.Int(), appearance=graphene.String())
|
# room = relay.Node.Field(RoomNode)
|
||||||
room_entry = relay.Node.Field(RoomEntryNode)
|
room_entry = relay.Node.Field(RoomEntryNode)
|
||||||
|
room = graphene.Field(RoomNode, slug=graphene.String(), id=graphene.Int(), appearance=graphene.String())
|
||||||
|
|
||||||
all_rooms = DjangoFilterConnectionField(RoomNode)
|
all_rooms = DjangoFilterConnectionField(RoomNode)
|
||||||
all_room_entries = DjangoFilterConnectionField(RoomEntryNode)
|
all_room_entries = DjangoFilterConnectionField(RoomEntryNode)
|
||||||
|
|
@ -52,3 +55,12 @@ class RoomsQuery(object):
|
||||||
if slug is not None:
|
if slug is not None:
|
||||||
return Room.objects.get(slug=slug)
|
return Room.objects.get(slug=slug)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
class RoomMutation(SerializerMutation):
|
||||||
|
class Meta:
|
||||||
|
serializer_class = RoomSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class RoomMutations:
|
||||||
|
add_room = RoomMutation.Field()
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
from rest_framework import serializers
|
||||||
|
|
||||||
|
from rooms.models import Room
|
||||||
|
|
||||||
|
|
||||||
|
class RoomSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = Room
|
||||||
|
fields = ('id', 'title', 'description', 'slug', 'user_group', 'appearance', )
|
||||||
|
read_only_fields = ('id', 'slug', )
|
||||||
Loading…
Reference in New Issue