Update snapshot node and mutation
This commit is contained in:
parent
3d78761e20
commit
e990596af5
|
|
@ -25,10 +25,10 @@
|
|||
},
|
||||
"autopep8": {
|
||||
"hashes": [
|
||||
"sha256:9e136c472c475f4ee4978b51a88a494bfcd4e3ed17950a44a988d9e434837bea",
|
||||
"sha256:cae4bc0fb616408191af41d062d7ec7ef8679c7f27b068875ca3a9e2878d5443"
|
||||
"sha256:276ced7e9e3cb22e5d7c14748384a5cf5d9002257c0ed50c0e075b68011bb6d0",
|
||||
"sha256:aa213493c30dcdac99537249ee65b24af0b2c29f2e83cd8b3f68760441ed0db9"
|
||||
],
|
||||
"version": "==1.5.5"
|
||||
"version": "==1.5.7"
|
||||
},
|
||||
"backcall": {
|
||||
"hashes": [
|
||||
|
|
@ -55,18 +55,18 @@
|
|||
},
|
||||
"boto3": {
|
||||
"hashes": [
|
||||
"sha256:1ca39de26205439832fa740fcc200de85f107b615dae445f869a16b76672e663",
|
||||
"sha256:d6716f6701aae771f6ff2386a1d641855a99a9fedd64bd25476b83bacdd50c94"
|
||||
"sha256:1db618cfe0e9d8c6ff4fc31ef4f9620bd72f472da0f3095f0be9372d77b671e9",
|
||||
"sha256:61fe8cbb2d4bf1c9a69a73b3f2c68464e0ab587c9367b35f0ef691f372d5ce67"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.17.23"
|
||||
"version": "==1.17.67"
|
||||
},
|
||||
"botocore": {
|
||||
"hashes": [
|
||||
"sha256:d5ea913331e93cecde25773841397c5d2abbc04f38b1c96c636444e8bb3478f8",
|
||||
"sha256:f3ae5cae250c3fb200d33abacbee3f0c6513fc6f1d17a851b04a3998de68c829"
|
||||
"sha256:4666fb5bdf7d78c51d465bac7d9eb1d31c34be46990cd1ad2d1b338bbec8c049",
|
||||
"sha256:adb26d8bc65761b5a46744f67b7e7096dedb2071aff876e0962cd648f28e9a8f"
|
||||
],
|
||||
"version": "==1.20.23"
|
||||
"version": "==1.20.67"
|
||||
},
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
|
|
@ -84,10 +84,10 @@
|
|||
},
|
||||
"decorator": {
|
||||
"hashes": [
|
||||
"sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760",
|
||||
"sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7"
|
||||
"sha256:6f201a6c4dac3d187352661f508b9364ec8091217442c9478f1f83c003a0f060",
|
||||
"sha256:945d84890bb20cc4a2f4a31fc4311c0c473af65ea318617f13a7257c9a58bc98"
|
||||
],
|
||||
"version": "==4.4.2"
|
||||
"version": "==5.0.7"
|
||||
},
|
||||
"dj-database-url": {
|
||||
"hashes": [
|
||||
|
|
@ -98,11 +98,11 @@
|
|||
},
|
||||
"django": {
|
||||
"hashes": [
|
||||
"sha256:30c235dec87e05667597e339f194c9fed6c855bda637266ceee891bf9093da43",
|
||||
"sha256:e319a7164d6d30cb177b3fd74d02c52f1185c37304057bb76d74047889c605d9"
|
||||
"sha256:db2214db1c99017cbd971e58824e6f424375154fe358afc30e976f5b99fc6060",
|
||||
"sha256:e831105edb153af1324de44d06091ca75520a227456387dda4a47d2f1cc2731a"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.2.19"
|
||||
"version": "==2.2.22"
|
||||
},
|
||||
"django-appconf": {
|
||||
"hashes": [
|
||||
|
|
@ -113,11 +113,11 @@
|
|||
},
|
||||
"django-compressor": {
|
||||
"hashes": [
|
||||
"sha256:57ac0a696d061e5fc6fbc55381d2050f353b973fb97eee5593f39247bc0f30af",
|
||||
"sha256:d2ed1c6137ddaac5536233ec0a819e14009553fee0a869bea65d03e5285ba74f"
|
||||
"sha256:3358077605c146fdcca5f9eaffb50aa5dbe15f238f8854679115ebf31c0415e0",
|
||||
"sha256:f8313f59d5e65712fc28787d084fe834997c9dfa92d064a1a3ec3d3366594d04"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.4"
|
||||
"version": "==2.4.1"
|
||||
},
|
||||
"django-cors-headers": {
|
||||
"hashes": [
|
||||
|
|
@ -220,10 +220,10 @@
|
|||
},
|
||||
"faker": {
|
||||
"hashes": [
|
||||
"sha256:97fb6748031569a65265d38d85370b3c3970f4333b40430d52a60b37dea97877",
|
||||
"sha256:ee86c3140e1d1651b76a7aab637c7da068660f33937143e7063c663f4cec45ab"
|
||||
"sha256:156854f36d4086bb21ff85a79b4d6a6403a240cd2c17a33a44b8ea4ff4e957c2",
|
||||
"sha256:a2ed065342e91a7672407325848cd5728d5e5eb4928d0a1c478fd4f0dd97d1f7"
|
||||
],
|
||||
"version": "==6.5.2"
|
||||
"version": "==8.1.2"
|
||||
},
|
||||
"future": {
|
||||
"hashes": [
|
||||
|
|
@ -290,11 +290,11 @@
|
|||
},
|
||||
"ipython": {
|
||||
"hashes": [
|
||||
"sha256:04323f72d5b85b606330b6d7e2dc8d2683ad46c3905e955aa96ecc7a99388e70",
|
||||
"sha256:34207ffb2f653bced2bc8e3756c1db86e7d93e44ed049daae9814fed66d408ec"
|
||||
"sha256:714810a5c74f512b69d5f3b944c86e592cee0a5fb9c728e582f074610f6cf038",
|
||||
"sha256:f78c6a3972dde1cc9e4041cbf4de583546314ba52d3c97208e5b6b2221a9cb7d"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==7.21.0"
|
||||
"version": "==7.23.1"
|
||||
},
|
||||
"ipython-genutils": {
|
||||
"hashes": [
|
||||
|
|
@ -400,6 +400,13 @@
|
|||
],
|
||||
"version": "==1.1.1"
|
||||
},
|
||||
"matplotlib-inline": {
|
||||
"hashes": [
|
||||
"sha256:5cf1176f554abb4fa98cb362aa2b55c500147e4bdbb07e3fda359143e1da0811",
|
||||
"sha256:f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e"
|
||||
],
|
||||
"version": "==0.1.2"
|
||||
},
|
||||
"newrelic": {
|
||||
"hashes": [
|
||||
"sha256:242a5e901d684f7ffdd621bc58da8fe9a85d5545b4b63e1070589f5ab45c9e1e",
|
||||
|
|
@ -501,10 +508,10 @@
|
|||
},
|
||||
"prompt-toolkit": {
|
||||
"hashes": [
|
||||
"sha256:0fa02fa80363844a4ab4b8d6891f62dd0645ba672723130423ca4037b80c1974",
|
||||
"sha256:62c811e46bd09130fb11ab759012a4ae385ce4fb2073442d1898867a824183bd"
|
||||
"sha256:bf00f22079f5fadc949f42ae8ff7f05702826a97059ffcc6281036ad40ac6f04",
|
||||
"sha256:e1b4f11b9336a28fa11810bc623c357420f69dfdb6d2dac41ca2c21a55c033bc"
|
||||
],
|
||||
"version": "==3.0.16"
|
||||
"version": "==3.0.18"
|
||||
},
|
||||
"psycopg2": {
|
||||
"hashes": [
|
||||
|
|
@ -536,17 +543,17 @@
|
|||
},
|
||||
"pycodestyle": {
|
||||
"hashes": [
|
||||
"sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367",
|
||||
"sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e"
|
||||
"sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068",
|
||||
"sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"
|
||||
],
|
||||
"version": "==2.6.0"
|
||||
"version": "==2.7.0"
|
||||
},
|
||||
"pygments": {
|
||||
"hashes": [
|
||||
"sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94",
|
||||
"sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"
|
||||
"sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f",
|
||||
"sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"
|
||||
],
|
||||
"version": "==2.8.1"
|
||||
"version": "==2.9.0"
|
||||
},
|
||||
"pyparsing": {
|
||||
"hashes": [
|
||||
|
|
@ -635,17 +642,17 @@
|
|||
},
|
||||
"s3transfer": {
|
||||
"hashes": [
|
||||
"sha256:1e28620e5b444652ed752cf87c7e0cb15b0e578972568c6609f0f18212f259ed",
|
||||
"sha256:7fdddb4f22275cf1d32129e21f056337fd2a80b6ccef1664528145b72c49e6d2"
|
||||
"sha256:9b3752887a2880690ce628bc263d6d13a3864083aeacff4890c1c9839a5eb0bc",
|
||||
"sha256:cb022f4b16551edebbb31a377d3f09600dbada7363d8c5db7976e7f47732e1b2"
|
||||
],
|
||||
"version": "==0.3.4"
|
||||
"version": "==0.4.2"
|
||||
},
|
||||
"sendgrid": {
|
||||
"hashes": [
|
||||
"sha256:2eb1dcb1f7d8656eed4db586e428c2c86f347590b8511d7f92993882d0e4fab9",
|
||||
"sha256:e422c8263563ac7d664066d2f87b90bcb005b067eb7c33a9b1396442b2ed285b"
|
||||
"sha256:273bdc0abec649bf6319df7b6267980f79e53ab64e92906d65eea6d4330d00b4",
|
||||
"sha256:74b0dcf9a79188948f61f456bd1bf67ffa676a5d388aba1c76bff516566d7084"
|
||||
],
|
||||
"version": "==6.6.0"
|
||||
"version": "==6.7.0"
|
||||
},
|
||||
"sentry-sdk": {
|
||||
"hashes": [
|
||||
|
|
@ -664,10 +671,10 @@
|
|||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||
],
|
||||
"version": "==1.15.0"
|
||||
"version": "==1.16.0"
|
||||
},
|
||||
"sqlparse": {
|
||||
"hashes": [
|
||||
|
|
@ -705,10 +712,11 @@
|
|||
},
|
||||
"typing": {
|
||||
"hashes": [
|
||||
"sha256:1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9",
|
||||
"sha256:283d868f5071ab9ad873e5e52268d611e851c870a2ba354193026f2dfb29d8b5"
|
||||
"sha256:12fbdfbe7d6cca1a42e485229afcb0b0c8259258cfb919b8a5e2a5c953742f89",
|
||||
"sha256:13b4ad211f54ddbf93e5901a9967b1e07720c1d1b78d596ac6a439641aa1b130",
|
||||
"sha256:c7219ef20c5fbf413b4567092adfc46fa6203cb8454eda33c3fc1afe1398a308"
|
||||
],
|
||||
"version": "==3.7.4.3"
|
||||
"version": "==3.10.0.0"
|
||||
},
|
||||
"unidecode": {
|
||||
"hashes": [
|
||||
|
|
@ -727,10 +735,10 @@
|
|||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80",
|
||||
"sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73"
|
||||
"sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df",
|
||||
"sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"
|
||||
],
|
||||
"version": "==1.26.3"
|
||||
"version": "==1.26.4"
|
||||
},
|
||||
"wagtail": {
|
||||
"hashes": [
|
||||
|
|
@ -742,10 +750,10 @@
|
|||
},
|
||||
"wagtail-autocomplete": {
|
||||
"hashes": [
|
||||
"sha256:5f8ddf16d3ca365af4ad0f09e8f45d9e982ca854dc1b084a8a30f66b00a7739d"
|
||||
"sha256:73602db77eb3eee27f17a0b22aa88badf9fb5079fb1822c921f06a17224ce4db"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.6"
|
||||
"version": "==0.6.3"
|
||||
},
|
||||
"wagtail-factories": {
|
||||
"hashes": [
|
||||
|
|
@ -788,25 +796,25 @@
|
|||
"develop": {
|
||||
"asgiref": {
|
||||
"hashes": [
|
||||
"sha256:5ee950735509d04eb673bd7f7120f8fa1c9e2df495394992c73234d526907e17",
|
||||
"sha256:7162a3cb30ab0609f1a4c95938fd73e8604f63bdba516a7f7d64b83ff09478f0"
|
||||
"sha256:92906c611ce6c967347bbfea733f13d6313901d54dcca88195eaeb52b2a8e8ee",
|
||||
"sha256:d1216dfbdfb63826470995d31caed36225dcaf34f182e0fa257a4dd9e86f1b78"
|
||||
],
|
||||
"version": "==3.3.1"
|
||||
"version": "==3.3.4"
|
||||
},
|
||||
"autopep8": {
|
||||
"hashes": [
|
||||
"sha256:9e136c472c475f4ee4978b51a88a494bfcd4e3ed17950a44a988d9e434837bea",
|
||||
"sha256:cae4bc0fb616408191af41d062d7ec7ef8679c7f27b068875ca3a9e2878d5443"
|
||||
"sha256:276ced7e9e3cb22e5d7c14748384a5cf5d9002257c0ed50c0e075b68011bb6d0",
|
||||
"sha256:aa213493c30dcdac99537249ee65b24af0b2c29f2e83cd8b3f68760441ed0db9"
|
||||
],
|
||||
"version": "==1.5.5"
|
||||
"version": "==1.5.7"
|
||||
},
|
||||
"awscli": {
|
||||
"hashes": [
|
||||
"sha256:191c07061bf227775437bf0b6e6209e0db50affcd8d5a37ba9fe5d87b6b80585",
|
||||
"sha256:426e2eb8412b59e677ac28603cb6a038bea50ae8fab60ee9edf3756b28d4f419"
|
||||
"sha256:23aaea71d9b159946bb4b4f9d76b0e7375acde79595d006d988225d1d07692db",
|
||||
"sha256:d24d33d91f642fdd80ea989b37fddf59e46b2122be5ad04f0f8faee3a1140de8"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.19.23"
|
||||
"version": "==1.19.67"
|
||||
},
|
||||
"backcall": {
|
||||
"hashes": [
|
||||
|
|
@ -817,10 +825,10 @@
|
|||
},
|
||||
"botocore": {
|
||||
"hashes": [
|
||||
"sha256:d5ea913331e93cecde25773841397c5d2abbc04f38b1c96c636444e8bb3478f8",
|
||||
"sha256:f3ae5cae250c3fb200d33abacbee3f0c6513fc6f1d17a851b04a3998de68c829"
|
||||
"sha256:4666fb5bdf7d78c51d465bac7d9eb1d31c34be46990cd1ad2d1b338bbec8c049",
|
||||
"sha256:adb26d8bc65761b5a46744f67b7e7096dedb2071aff876e0962cd648f28e9a8f"
|
||||
],
|
||||
"version": "==1.20.23"
|
||||
"version": "==1.20.67"
|
||||
},
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
|
|
@ -903,18 +911,18 @@
|
|||
},
|
||||
"decorator": {
|
||||
"hashes": [
|
||||
"sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760",
|
||||
"sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7"
|
||||
"sha256:6f201a6c4dac3d187352661f508b9364ec8091217442c9478f1f83c003a0f060",
|
||||
"sha256:945d84890bb20cc4a2f4a31fc4311c0c473af65ea318617f13a7257c9a58bc98"
|
||||
],
|
||||
"version": "==4.4.2"
|
||||
"version": "==5.0.7"
|
||||
},
|
||||
"django": {
|
||||
"hashes": [
|
||||
"sha256:30c235dec87e05667597e339f194c9fed6c855bda637266ceee891bf9093da43",
|
||||
"sha256:e319a7164d6d30cb177b3fd74d02c52f1185c37304057bb76d74047889c605d9"
|
||||
"sha256:db2214db1c99017cbd971e58824e6f424375154fe358afc30e976f5b99fc6060",
|
||||
"sha256:e831105edb153af1324de44d06091ca75520a227456387dda4a47d2f1cc2731a"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.2.19"
|
||||
"version": "==2.2.22"
|
||||
},
|
||||
"django-silk": {
|
||||
"hashes": [
|
||||
|
|
@ -946,18 +954,18 @@
|
|||
},
|
||||
"ipdb": {
|
||||
"hashes": [
|
||||
"sha256:1aa37e19e5b3b96c930fe7fe97193a54202c23a8d1b1c7763f76553f5b275731"
|
||||
"sha256:178c367a61c1039e44e17c56fcc4a6e7dc11b33561261382d419b6ddb4401810"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.13.6"
|
||||
"version": "==0.13.7"
|
||||
},
|
||||
"ipython": {
|
||||
"hashes": [
|
||||
"sha256:04323f72d5b85b606330b6d7e2dc8d2683ad46c3905e955aa96ecc7a99388e70",
|
||||
"sha256:34207ffb2f653bced2bc8e3756c1db86e7d93e44ed049daae9814fed66d408ec"
|
||||
"sha256:714810a5c74f512b69d5f3b944c86e592cee0a5fb9c728e582f074610f6cf038",
|
||||
"sha256:f78c6a3972dde1cc9e4041cbf4de583546314ba52d3c97208e5b6b2221a9cb7d"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==7.21.0"
|
||||
"version": "==7.23.1"
|
||||
},
|
||||
"ipython-genutils": {
|
||||
"hashes": [
|
||||
|
|
@ -1045,6 +1053,13 @@
|
|||
],
|
||||
"version": "==1.1.1"
|
||||
},
|
||||
"matplotlib-inline": {
|
||||
"hashes": [
|
||||
"sha256:5cf1176f554abb4fa98cb362aa2b55c500147e4bdbb07e3fda359143e1da0811",
|
||||
"sha256:f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e"
|
||||
],
|
||||
"version": "==0.1.2"
|
||||
},
|
||||
"parso": {
|
||||
"hashes": [
|
||||
"sha256:97218d9159b2520ff45eb78028ba8b50d2bc61dcc062a9682666f2dc4bd331ea",
|
||||
|
|
@ -1069,10 +1084,10 @@
|
|||
},
|
||||
"prompt-toolkit": {
|
||||
"hashes": [
|
||||
"sha256:0fa02fa80363844a4ab4b8d6891f62dd0645ba672723130423ca4037b80c1974",
|
||||
"sha256:62c811e46bd09130fb11ab759012a4ae385ce4fb2073442d1898867a824183bd"
|
||||
"sha256:bf00f22079f5fadc949f42ae8ff7f05702826a97059ffcc6281036ad40ac6f04",
|
||||
"sha256:e1b4f11b9336a28fa11810bc623c357420f69dfdb6d2dac41ca2c21a55c033bc"
|
||||
],
|
||||
"version": "==3.0.16"
|
||||
"version": "==3.0.18"
|
||||
},
|
||||
"ptyprocess": {
|
||||
"hashes": [
|
||||
|
|
@ -1101,17 +1116,17 @@
|
|||
},
|
||||
"pycodestyle": {
|
||||
"hashes": [
|
||||
"sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367",
|
||||
"sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e"
|
||||
"sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068",
|
||||
"sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"
|
||||
],
|
||||
"version": "==2.6.0"
|
||||
"version": "==2.7.0"
|
||||
},
|
||||
"pygments": {
|
||||
"hashes": [
|
||||
"sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94",
|
||||
"sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"
|
||||
"sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f",
|
||||
"sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"
|
||||
],
|
||||
"version": "==2.8.1"
|
||||
"version": "==2.9.0"
|
||||
},
|
||||
"python-dateutil": {
|
||||
"hashes": [
|
||||
|
|
@ -1174,21 +1189,22 @@
|
|||
"sha256:78f9a9bf4e7be0c5ded4583326e7461e3a3c5aae24073648b4bdfa797d78c9d2",
|
||||
"sha256:9d689e6ca1b3038bc82bf8d23e944b6b6037bc02301a574935b2dd946e0353b9"
|
||||
],
|
||||
"markers": "python_version > '2.7'",
|
||||
"version": "==4.7.2"
|
||||
},
|
||||
"s3transfer": {
|
||||
"hashes": [
|
||||
"sha256:1e28620e5b444652ed752cf87c7e0cb15b0e578972568c6609f0f18212f259ed",
|
||||
"sha256:7fdddb4f22275cf1d32129e21f056337fd2a80b6ccef1664528145b72c49e6d2"
|
||||
"sha256:9b3752887a2880690ce628bc263d6d13a3864083aeacff4890c1c9839a5eb0bc",
|
||||
"sha256:cb022f4b16551edebbb31a377d3f09600dbada7363d8c5db7976e7f47732e1b2"
|
||||
],
|
||||
"version": "==0.3.4"
|
||||
"version": "==0.4.2"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||
],
|
||||
"version": "==1.15.0"
|
||||
"version": "==1.16.0"
|
||||
},
|
||||
"sqlparse": {
|
||||
"hashes": [
|
||||
|
|
@ -1213,10 +1229,10 @@
|
|||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80",
|
||||
"sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73"
|
||||
"sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df",
|
||||
"sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"
|
||||
],
|
||||
"version": "==1.26.3"
|
||||
"version": "==1.26.4"
|
||||
},
|
||||
"wcwidth": {
|
||||
"hashes": [
|
||||
|
|
|
|||
|
|
@ -7,6 +7,17 @@ query SnapshotDetail($id: ID!) {
|
|||
title
|
||||
metaTitle
|
||||
heroImage
|
||||
created
|
||||
changes {
|
||||
newContentBlocks
|
||||
newObjectives
|
||||
hiddenContentBlocks
|
||||
hiddenObjectives
|
||||
}
|
||||
creator {
|
||||
firstName
|
||||
lastName
|
||||
}
|
||||
chapters {
|
||||
id
|
||||
description
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
import graphene
|
||||
from django.db.models import Q
|
||||
from graphene import relay
|
||||
|
||||
from api.utils import get_object
|
||||
from books.models import Module, ContentBlock
|
||||
from books.models import Module, ContentBlock, Chapter
|
||||
from books.models.snapshot import Snapshot
|
||||
from books.schema.nodes import SnapshotNode
|
||||
from books.schema.nodes import SnapshotNode, ModuleNode
|
||||
from users.models import SchoolClass
|
||||
|
||||
|
||||
|
|
@ -35,6 +36,7 @@ class ApplySnapshot(relay.ClientIDMutation):
|
|||
selected_class = graphene.ID(required=True)
|
||||
|
||||
success = graphene.Boolean()
|
||||
module = graphene.Field(ModuleNode)
|
||||
|
||||
@classmethod
|
||||
def mutate_and_get_payload(cls, root, info, **args):
|
||||
|
|
@ -43,6 +45,17 @@ class ApplySnapshot(relay.ClientIDMutation):
|
|||
user = info.context.user
|
||||
selected_class_id = args.get('selected_class')
|
||||
selected_class = get_object(SchoolClass, selected_class_id)
|
||||
#reset everything
|
||||
for chapter in Chapter.get_by_parent(snapshot.module):
|
||||
cb_qs = ContentBlock.get_by_parent(chapter)
|
||||
without_owner = Q(owner__isnull=True)
|
||||
no_snapshot = Q(contentblocksnapshot__isnull=True)
|
||||
owner_user = Q(owner=user)
|
||||
for cb in cb_qs.filter(without_owner & no_snapshot):
|
||||
cb.hidden_for.remove(selected_class)
|
||||
for cb in cb_qs.filter(owner_user):
|
||||
cb.visible_for.remove(selected_class)
|
||||
#apply snapshot
|
||||
if not selected_class.users.filter(username=user.username).exists() or not user.is_teacher():
|
||||
raise PermissionError('Not allowed')
|
||||
for content_block in snapshot.hidden_content_blocks.all():
|
||||
|
|
@ -55,4 +68,4 @@ class ApplySnapshot(relay.ClientIDMutation):
|
|||
chapter.title_hidden_for.add(selected_class)
|
||||
if chapter_snapshot.description_hidden:
|
||||
chapter.description_hidden_for.add(selected_class)
|
||||
return cls(success=True)
|
||||
return cls(success=True, module=snapshot.module)
|
||||
|
|
|
|||
|
|
@ -59,6 +59,11 @@ class SnapshotChapterNode(ObjectType):
|
|||
title_hidden = graphene.Boolean()
|
||||
|
||||
|
||||
class SnapshotChangesNode(ObjectType):
|
||||
hidden_objectives = graphene.Int(required=True)
|
||||
new_objectives = graphene.Int(required=True)
|
||||
hidden_content_blocks = graphene.Int(required=True)
|
||||
new_content_blocks = graphene.Int(required=True)
|
||||
|
||||
|
||||
class SnapshotNode(DjangoObjectType):
|
||||
|
|
@ -66,6 +71,7 @@ class SnapshotNode(DjangoObjectType):
|
|||
chapters = graphene.List(SnapshotChapterNode)
|
||||
meta_title = graphene.String()
|
||||
hero_image = graphene.String()
|
||||
changes = graphene.Field(SnapshotChangesNode)
|
||||
|
||||
class Meta:
|
||||
model = Snapshot
|
||||
|
|
@ -85,7 +91,7 @@ class SnapshotNode(DjangoObjectType):
|
|||
|
||||
@staticmethod
|
||||
def resolve_title(parent, info, **kwargs):
|
||||
return parent.__str__()
|
||||
return parent.module.title
|
||||
|
||||
@staticmethod
|
||||
def resolve_meta_title(parent, info, **kwargs):
|
||||
|
|
@ -96,3 +102,12 @@ class SnapshotNode(DjangoObjectType):
|
|||
if parent.module.hero_image:
|
||||
return parent.module.hero_image.file.url
|
||||
return ''
|
||||
|
||||
@staticmethod
|
||||
def resolve_changes(parent, info, **kwargs):
|
||||
return {
|
||||
'hidden_objectives': 0,
|
||||
'new_objectives': 0,
|
||||
'hidden_content_blocks': parent.hidden_content_blocks.count(),
|
||||
'new_content_blocks': parent.custom_content_blocks.count()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue