udata 9.1.4.dev31191__py2.py3-none-any.whl → 9.1.4.dev31242__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of udata might be problematic. Click here for more details.

Files changed (28) hide show
  1. udata/core/dataservices/api.py +37 -1
  2. udata/core/dataservices/models.py +38 -0
  3. udata/core/dataset/events.py +4 -1
  4. udata/core/organization/api.py +7 -1
  5. udata/core/organization/rdf.py +4 -1
  6. udata/core/site/api.py +1 -26
  7. udata/settings.py +1 -0
  8. udata/static/chunks/{11.18f1cc16362b76373c40.js → 11.8910c81ce1e1b0f4a71f.js} +3 -3
  9. udata/static/chunks/{11.18f1cc16362b76373c40.js.map → 11.8910c81ce1e1b0f4a71f.js.map} +1 -1
  10. udata/static/chunks/{19.2061dca8438f415029a3.js → 19.28f355064e529318c9b1.js} +3 -3
  11. udata/static/chunks/{19.2061dca8438f415029a3.js.map → 19.28f355064e529318c9b1.js.map} +1 -1
  12. udata/static/chunks/{5.d17ff266ecc1ad0331fb.js → 5.270f2cb840d87976aecd.js} +3 -3
  13. udata/static/chunks/{5.d17ff266ecc1ad0331fb.js.map → 5.270f2cb840d87976aecd.js.map} +1 -1
  14. udata/static/chunks/{6.0db5d3ff22944de7edd5.js → 6.c433506a3004b8f4d5fb.js} +3 -3
  15. udata/static/chunks/{6.0db5d3ff22944de7edd5.js.map → 6.c433506a3004b8f4d5fb.js.map} +1 -1
  16. udata/static/chunks/{8.292c6a157d71f0b21b6f.js → 8.4aa47633f437db19feb5.js} +2 -2
  17. udata/static/chunks/{8.292c6a157d71f0b21b6f.js.map → 8.4aa47633f437db19feb5.js.map} +1 -1
  18. udata/static/common.js +1 -1
  19. udata/static/common.js.map +1 -1
  20. udata/tests/api/test_dataservices_api.py +59 -0
  21. udata/tests/dataset/test_dataset_events.py +28 -0
  22. udata/tests/organization/test_organization_rdf.py +31 -6
  23. {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/METADATA +3 -1
  24. {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/RECORD +28 -28
  25. {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/LICENSE +0 -0
  26. {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/WHEEL +0 -0
  27. {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/entry_points.txt +0 -0
  28. {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/top_level.txt +0 -0
udata/static/common.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e){function __webpack_require__(a){if(c[a])return c[a].exports;var f=c[a]={exports:{},id:a,loaded:!1};return e[a].call(f.exports,f,f.exports,__webpack_require__),f.loaded=!0,f.exports}var a=window.webpackJsonp;window.webpackJsonp=function(r,b){for(var t,d,_=0,n=[];_<r.length;_++)d=r[_],f[d]&&n.push.apply(n,f[d]),f[d]=0;for(t in b){var i=b[t];switch(typeof i){case"object":e[t]=function(a){var c=a.slice(1),f=a[0];return function(a,r,b){e[f].apply(this,[a,r,b].concat(c))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(a&&a(r,b);n.length;)n.shift().call(null,__webpack_require__);if(b[0])return c[0]=0,__webpack_require__(0)};var c={},f={31:0};__webpack_require__.e=function(e,a){if(0===f[e])return a.call(null,__webpack_require__);if(void 0!==f[e])f[e].push(a);else{f[e]=[a];var c=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.src=__webpack_require__.p+"chunks/"+e+"."+{0:"8f152ff3f1e15e3d8778",1:"c53dfc91009cfdf4583b",2:"c6dba6a3f04d53321e86",3:"31f4515503a814e0e3a3",4:"3720aa269a60fa6d03b4",5:"d17ff266ecc1ad0331fb",6:"0db5d3ff22944de7edd5",7:"6ce1bc0456cf60b71a71",8:"292c6a157d71f0b21b6f",9:"8ad948dd393d38f07a7a",10:"c1c9496ebfc8949f3de2",11:"18f1cc16362b76373c40",12:"576e63b7a990f8eab784",13:"fd1ca1cf5b2c1854ed51",14:"42393a4d555321f07b8b",15:"7de380008f4ec6ea4b5b",16:"6727d8aca9393baa855c",17:"4687eae5e18d3049fe7b",18:"b7098bfe5401f75973fa",19:"2061dca8438f415029a3",20:"17e9e766625991aa0a7b",21:"2b48c7e5fe59775d5eb3",22:"2a919b7f6014457264e8",23:"3e0c3e2e54035b03f0cd",24:"90ea877940aa6e51aa05",25:"f58e4af656779957db54",26:"980f1773d9ad3068ab73",27:"d27b63112823e700bf20",28:"1ef31a46255dc2bf56d1",29:"056b71a60b1ba45eb81b",30:"01f57358f352314e7df0",32:"92a026dcad120ccdf15f",33:"c1ee77b51bb867f3d7cd"}[e]+".js",c.appendChild(r)}},__webpack_require__.m=e,__webpack_require__.c=c,__webpack_require__.p="/static/"}(function(e){for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a))switch(typeof e[a]){case"function":break;case"object":e[a]=function(a){var c=a.slice(1),f=e[a[0]];return function(e,a,r){f.apply(this,[e,a,r].concat(c))}}(e[a]);break;default:e[a]=e[e[a]]}return e}([]));
1
+ !function(e){function __webpack_require__(a){if(c[a])return c[a].exports;var f=c[a]={exports:{},id:a,loaded:!1};return e[a].call(f.exports,f,f.exports,__webpack_require__),f.loaded=!0,f.exports}var a=window.webpackJsonp;window.webpackJsonp=function(r,b){for(var t,d,_=0,n=[];_<r.length;_++)d=r[_],f[d]&&n.push.apply(n,f[d]),f[d]=0;for(t in b){var i=b[t];switch(typeof i){case"object":e[t]=function(a){var c=a.slice(1),f=a[0];return function(a,r,b){e[f].apply(this,[a,r,b].concat(c))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(a&&a(r,b);n.length;)n.shift().call(null,__webpack_require__);if(b[0])return c[0]=0,__webpack_require__(0)};var c={},f={31:0};__webpack_require__.e=function(e,a){if(0===f[e])return a.call(null,__webpack_require__);if(void 0!==f[e])f[e].push(a);else{f[e]=[a];var c=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.src=__webpack_require__.p+"chunks/"+e+"."+{0:"8f152ff3f1e15e3d8778",1:"c53dfc91009cfdf4583b",2:"c6dba6a3f04d53321e86",3:"31f4515503a814e0e3a3",4:"3720aa269a60fa6d03b4",5:"270f2cb840d87976aecd",6:"c433506a3004b8f4d5fb",7:"6ce1bc0456cf60b71a71",8:"4aa47633f437db19feb5",9:"8ad948dd393d38f07a7a",10:"c1c9496ebfc8949f3de2",11:"8910c81ce1e1b0f4a71f",12:"576e63b7a990f8eab784",13:"fd1ca1cf5b2c1854ed51",14:"42393a4d555321f07b8b",15:"7de380008f4ec6ea4b5b",16:"6727d8aca9393baa855c",17:"4687eae5e18d3049fe7b",18:"b7098bfe5401f75973fa",19:"28f355064e529318c9b1",20:"17e9e766625991aa0a7b",21:"2b48c7e5fe59775d5eb3",22:"2a919b7f6014457264e8",23:"3e0c3e2e54035b03f0cd",24:"90ea877940aa6e51aa05",25:"f58e4af656779957db54",26:"980f1773d9ad3068ab73",27:"d27b63112823e700bf20",28:"1ef31a46255dc2bf56d1",29:"056b71a60b1ba45eb81b",30:"01f57358f352314e7df0",32:"92a026dcad120ccdf15f",33:"c1ee77b51bb867f3d7cd"}[e]+".js",c.appendChild(r)}},__webpack_require__.m=e,__webpack_require__.c=c,__webpack_require__.p="/static/"}(function(e){for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a))switch(typeof e[a]){case"function":break;case"object":e[a]=function(a){var c=a.slice(1),f=e[a[0]];return function(e,a,r){f.apply(this,[e,a,r].concat(c))}}(e[a]);break;default:e[a]=e[e[a]]}return e}([]));
2
2
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap ca380b10791e5e6eaa83"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"8f152ff3f1e15e3d8778\",\"1\":\"c53dfc91009cfdf4583b\",\"2\":\"c6dba6a3f04d53321e86\",\"3\":\"31f4515503a814e0e3a3\",\"4\":\"3720aa269a60fa6d03b4\",\"5\":\"d17ff266ecc1ad0331fb\",\"6\":\"0db5d3ff22944de7edd5\",\"7\":\"6ce1bc0456cf60b71a71\",\"8\":\"292c6a157d71f0b21b6f\",\"9\":\"8ad948dd393d38f07a7a\",\"10\":\"c1c9496ebfc8949f3de2\",\"11\":\"18f1cc16362b76373c40\",\"12\":\"576e63b7a990f8eab784\",\"13\":\"fd1ca1cf5b2c1854ed51\",\"14\":\"42393a4d555321f07b8b\",\"15\":\"7de380008f4ec6ea4b5b\",\"16\":\"6727d8aca9393baa855c\",\"17\":\"4687eae5e18d3049fe7b\",\"18\":\"b7098bfe5401f75973fa\",\"19\":\"2061dca8438f415029a3\",\"20\":\"17e9e766625991aa0a7b\",\"21\":\"2b48c7e5fe59775d5eb3\",\"22\":\"2a919b7f6014457264e8\",\"23\":\"3e0c3e2e54035b03f0cd\",\"24\":\"90ea877940aa6e51aa05\",\"25\":\"f58e4af656779957db54\",\"26\":\"980f1773d9ad3068ab73\",\"27\":\"d27b63112823e700bf20\",\"28\":\"1ef31a46255dc2bf56d1\",\"29\":\"056b71a60b1ba45eb81b\",\"30\":\"01f57358f352314e7df0\",\"32\":\"92a026dcad120ccdf15f\",\"33\":\"c1ee77b51bb867f3d7cd\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"8f152ff3f1e15e3d8778\",\"1\":\"c53dfc91009cfdf4583b\",\"2\":\"c6dba6a3f04d53321e86\",\"3\":\"31f4515503a814e0e3a3\",\"4\":\"3720aa269a60fa6d03b4\",\"5\":\"d17ff266ecc1ad0331fb\",\"6\":\"0db5d3ff22944de7edd5\",\"7\":\"6ce1bc0456cf60b71a71\",\"8\":\"292c6a157d71f0b21b6f\",\"9\":\"8ad948dd393d38f07a7a\",\"10\":\"c1c9496ebfc8949f3de2\",\"11\":\"18f1cc16362b76373c40\",\"12\":\"576e63b7a990f8eab784\",\"13\":\"fd1ca1cf5b2c1854ed51\",\"14\":\"42393a4d555321f07b8b\",\"15\":\"7de380008f4ec6ea4b5b\",\"16\":\"6727d8aca9393baa855c\",\"17\":\"4687eae5e18d3049fe7b\",\"18\":\"b7098bfe5401f75973fa\",\"19\":\"2061dca8438f415029a3\",\"20\":\"17e9e766625991aa0a7b\",\"21\":\"2b48c7e5fe59775d5eb3\",\"22\":\"2a919b7f6014457264e8\",\"23\":\"3e0c3e2e54035b03f0cd\",\"24\":\"90ea877940aa6e51aa05\",\"25\":\"f58e4af656779957db54\",\"26\":\"980f1773d9ad3068ab73\",\"27\":\"d27b63112823e700bf20\",\"28\":\"1ef31a46255dc2bf56d1\",\"29\":\"056b71a60b1ba45eb81b\",\"30\":\"01f57358f352314e7df0\",\"32\":\"92a026dcad120ccdf15f\",\"33\":\"c1ee77b51bb867f3d7cd\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap ca380b10791e5e6eaa83\n **/"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap 4f96c491148e97f271fc"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"8f152ff3f1e15e3d8778\",\"1\":\"c53dfc91009cfdf4583b\",\"2\":\"c6dba6a3f04d53321e86\",\"3\":\"31f4515503a814e0e3a3\",\"4\":\"3720aa269a60fa6d03b4\",\"5\":\"270f2cb840d87976aecd\",\"6\":\"c433506a3004b8f4d5fb\",\"7\":\"6ce1bc0456cf60b71a71\",\"8\":\"4aa47633f437db19feb5\",\"9\":\"8ad948dd393d38f07a7a\",\"10\":\"c1c9496ebfc8949f3de2\",\"11\":\"8910c81ce1e1b0f4a71f\",\"12\":\"576e63b7a990f8eab784\",\"13\":\"fd1ca1cf5b2c1854ed51\",\"14\":\"42393a4d555321f07b8b\",\"15\":\"7de380008f4ec6ea4b5b\",\"16\":\"6727d8aca9393baa855c\",\"17\":\"4687eae5e18d3049fe7b\",\"18\":\"b7098bfe5401f75973fa\",\"19\":\"28f355064e529318c9b1\",\"20\":\"17e9e766625991aa0a7b\",\"21\":\"2b48c7e5fe59775d5eb3\",\"22\":\"2a919b7f6014457264e8\",\"23\":\"3e0c3e2e54035b03f0cd\",\"24\":\"90ea877940aa6e51aa05\",\"25\":\"f58e4af656779957db54\",\"26\":\"980f1773d9ad3068ab73\",\"27\":\"d27b63112823e700bf20\",\"28\":\"1ef31a46255dc2bf56d1\",\"29\":\"056b71a60b1ba45eb81b\",\"30\":\"01f57358f352314e7df0\",\"32\":\"92a026dcad120ccdf15f\",\"33\":\"c1ee77b51bb867f3d7cd\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"8f152ff3f1e15e3d8778\",\"1\":\"c53dfc91009cfdf4583b\",\"2\":\"c6dba6a3f04d53321e86\",\"3\":\"31f4515503a814e0e3a3\",\"4\":\"3720aa269a60fa6d03b4\",\"5\":\"270f2cb840d87976aecd\",\"6\":\"c433506a3004b8f4d5fb\",\"7\":\"6ce1bc0456cf60b71a71\",\"8\":\"4aa47633f437db19feb5\",\"9\":\"8ad948dd393d38f07a7a\",\"10\":\"c1c9496ebfc8949f3de2\",\"11\":\"8910c81ce1e1b0f4a71f\",\"12\":\"576e63b7a990f8eab784\",\"13\":\"fd1ca1cf5b2c1854ed51\",\"14\":\"42393a4d555321f07b8b\",\"15\":\"7de380008f4ec6ea4b5b\",\"16\":\"6727d8aca9393baa855c\",\"17\":\"4687eae5e18d3049fe7b\",\"18\":\"b7098bfe5401f75973fa\",\"19\":\"28f355064e529318c9b1\",\"20\":\"17e9e766625991aa0a7b\",\"21\":\"2b48c7e5fe59775d5eb3\",\"22\":\"2a919b7f6014457264e8\",\"23\":\"3e0c3e2e54035b03f0cd\",\"24\":\"90ea877940aa6e51aa05\",\"25\":\"f58e4af656779957db54\",\"26\":\"980f1773d9ad3068ab73\",\"27\":\"d27b63112823e700bf20\",\"28\":\"1ef31a46255dc2bf56d1\",\"29\":\"056b71a60b1ba45eb81b\",\"30\":\"01f57358f352314e7df0\",\"32\":\"92a026dcad120ccdf15f\",\"33\":\"c1ee77b51bb867f3d7cd\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 4f96c491148e97f271fc\n **/"],"sourceRoot":""}
@@ -1,11 +1,16 @@
1
+ from xml.etree.ElementTree import XML
2
+
3
+ import pytest
1
4
  from flask import url_for
2
5
 
6
+ from udata.core.dataservices.factories import DataserviceFactory
3
7
  from udata.core.dataservices.models import Dataservice
4
8
  from udata.core.dataset.factories import DatasetFactory, LicenseFactory
5
9
  from udata.core.organization.factories import OrganizationFactory
6
10
  from udata.core.organization.models import Member
7
11
  from udata.core.user.factories import UserFactory
8
12
  from udata.i18n import gettext as _
13
+ from udata.tests.helpers import assert200, assert_redirects
9
14
 
10
15
  from . import APITestCase
11
16
 
@@ -311,3 +316,57 @@ class DataserviceAPITest(APITestCase):
311
316
  dataservice = Dataservice.objects(id=response.json["id"]).first()
312
317
  self.assertEqual(dataservice.owner, None)
313
318
  self.assertEqual(dataservice.organization.id, me_org.id)
319
+
320
+
321
+ @pytest.mark.frontend
322
+ class DataserviceRdfViewsTest:
323
+ def test_rdf_default_to_jsonld(self, client):
324
+ dataservice = DataserviceFactory()
325
+ expected = url_for("api.dataservice_rdf_format", dataservice=dataservice.id, format="json")
326
+ response = client.get(url_for("api.dataservice_rdf", dataservice=dataservice))
327
+ assert_redirects(response, expected)
328
+
329
+ def test_rdf_perform_content_negociation(self, client):
330
+ dataservice = DataserviceFactory()
331
+ expected = url_for("api.dataservice_rdf_format", dataservice=dataservice.id, format="xml")
332
+ url = url_for("api.dataservice_rdf", dataservice=dataservice)
333
+ headers = {"accept": "application/xml"}
334
+ response = client.get(url, headers=headers)
335
+ assert_redirects(response, expected)
336
+
337
+ def test_rdf_perform_content_negociation_response(self, client):
338
+ """Check we have valid XML as output"""
339
+ dataservice = DataserviceFactory()
340
+ url = url_for("api.dataservice_rdf", dataservice=dataservice)
341
+ headers = {"accept": "application/xml"}
342
+ response = client.get(url, headers=headers, follow_redirects=True)
343
+ element = XML(response.data)
344
+ assert element.tag == "{http://www.w3.org/1999/02/22-rdf-syntax-ns#}RDF"
345
+
346
+ def test_dataservice_rdf_json_ld(self, client):
347
+ dataservice = DataserviceFactory()
348
+ for fmt in "json", "jsonld":
349
+ url = url_for("api.dataservice_rdf_format", dataservice=dataservice, format=fmt)
350
+ response = client.get(url, headers={"Accept": "application/ld+json"})
351
+ assert200(response)
352
+ assert response.content_type == "application/ld+json"
353
+ assert response.json["@context"]["@vocab"] == "http://www.w3.org/ns/dcat#"
354
+
355
+ @pytest.mark.parametrize(
356
+ "fmt,mime",
357
+ [
358
+ ("n3", "text/n3"),
359
+ ("nt", "application/n-triples"),
360
+ ("ttl", "application/x-turtle"),
361
+ ("xml", "application/rdf+xml"),
362
+ ("rdf", "application/rdf+xml"),
363
+ ("owl", "application/rdf+xml"),
364
+ ("trig", "application/trig"),
365
+ ],
366
+ )
367
+ def test_dataservice_rdf_formats(self, client, fmt, mime):
368
+ dataservice = DataserviceFactory()
369
+ url = url_for("api.dataservice_rdf_format", dataservice=dataservice, format=fmt)
370
+ response = client.get(url, headers={"Accept": mime})
371
+ assert200(response)
372
+ assert response.content_type == mime
@@ -15,6 +15,29 @@ from udata.tests.helpers import assert_emit
15
15
  @pytest.mark.usefixtures("enable_resource_event")
16
16
  class DatasetEventsTest:
17
17
  @patch("requests.post")
18
+ @pytest.mark.options(RESOURCES_ANALYSER_API_KEY=None)
19
+ def test_publish_message_resource_created_no_api_key(self, mock_req):
20
+ dataset = DatasetFactory()
21
+ resource = ResourceFactory()
22
+ expected_signals = (Dataset.on_resource_added,)
23
+
24
+ with assert_emit(*expected_signals):
25
+ dataset.add_resource(resource)
26
+
27
+ expected_value = {
28
+ "resource_id": str(resource.id),
29
+ "dataset_id": str(dataset.id),
30
+ "document": serialize_resource_for_event(resource),
31
+ }
32
+
33
+ mock_req.assert_called_with(
34
+ f"{current_app.config['RESOURCES_ANALYSER_URI']}/api/resource/created/",
35
+ json=expected_value,
36
+ headers={}, # No RESOURCES_ANALYSER_API_KEY, no headers.
37
+ )
38
+
39
+ @patch("requests.post")
40
+ @pytest.mark.options(RESOURCES_ANALYSER_API_KEY="foobar-api-key")
18
41
  def test_publish_message_resource_created(self, mock_req):
19
42
  dataset = DatasetFactory()
20
43
  resource = ResourceFactory()
@@ -32,9 +55,11 @@ class DatasetEventsTest:
32
55
  mock_req.assert_called_with(
33
56
  f"{current_app.config['RESOURCES_ANALYSER_URI']}/api/resource/created/",
34
57
  json=expected_value,
58
+ headers={"Authorization": "Bearer foobar-api-key"},
35
59
  )
36
60
 
37
61
  @patch("requests.post")
62
+ @pytest.mark.options(RESOURCES_ANALYSER_API_KEY="foobar-api-key")
38
63
  def test_publish_message_resource_modified(self, mock_req):
39
64
  resource = ResourceFactory(schema=Schema(url="http://localhost/my-schema"))
40
65
  dataset = DatasetFactory(resources=[resource])
@@ -54,6 +79,7 @@ class DatasetEventsTest:
54
79
  mock_req.assert_called_with(
55
80
  f"{current_app.config['RESOURCES_ANALYSER_URI']}/api/resource/updated/",
56
81
  json=expected_value,
82
+ headers={"Authorization": "Bearer foobar-api-key"},
57
83
  )
58
84
 
59
85
  # Mocking requests call doesn't call the JSON encoder
@@ -62,6 +88,7 @@ class DatasetEventsTest:
62
88
  complexjson.dumps(expected_value)
63
89
 
64
90
  @patch("requests.post")
91
+ @pytest.mark.options(RESOURCES_ANALYSER_API_KEY="foobar-api-key")
65
92
  def test_publish_message_resource_removed(self, mock_req):
66
93
  resource = ResourceFactory()
67
94
  dataset = DatasetFactory(resources=[resource])
@@ -79,4 +106,5 @@ class DatasetEventsTest:
79
106
  mock_req.assert_called_with(
80
107
  f"{current_app.config['RESOURCES_ANALYSER_URI']}/api/resource/deleted/",
81
108
  json=expected_value,
109
+ headers={"Authorization": "Bearer foobar-api-key"},
82
110
  )
@@ -4,6 +4,8 @@ from rdflib.namespace import FOAF, RDF, RDFS
4
4
  from rdflib.resource import Resource as RdfResource
5
5
 
6
6
  from udata import api
7
+ from udata.core.dataservices.factories import DataserviceFactory
8
+ from udata.core.dataservices.models import Dataservice
7
9
  from udata.core.dataset.factories import DatasetFactory
8
10
  from udata.core.dataset.models import Dataset
9
11
  from udata.core.organization.factories import OrganizationFactory
@@ -55,7 +57,8 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
55
57
  uri = url_for("api.organization_rdf", org=origin_org.id, _external=True)
56
58
 
57
59
  datasets = DatasetFactory.create_batch(3, organization=origin_org)
58
- catalog = build_org_catalog(origin_org, datasets)
60
+ dataservices = DataserviceFactory.create_batch(3, organization=origin_org)
61
+ catalog = build_org_catalog(origin_org, datasets, dataservices)
59
62
 
60
63
  graph = catalog.graph
61
64
 
@@ -69,6 +72,7 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
69
72
  self.assertEqual(str(catalog.identifier), uri)
70
73
 
71
74
  self.assertEqual(len(list(catalog.objects(DCAT.dataset))), len(datasets))
75
+ self.assertEqual(len(list(catalog.objects(DCAT.dataservice))), len(dataservices))
72
76
 
73
77
  org = catalog.value(DCT.publisher)
74
78
  self.assertEqual(org.value(RDF.type).identifier, FOAF.Organization)
@@ -80,6 +84,8 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
80
84
  graph = catalog.graph
81
85
  graph_datasets = graph.subjects(RDF.type, DCAT.Dataset)
82
86
  self.assertEqual(len(list(graph_datasets)), len(datasets))
87
+ graph_dataservices = graph.subjects(RDF.type, DCAT.DataService)
88
+ self.assertEqual(len(list(graph_dataservices)), len(dataservices))
83
89
 
84
90
  def test_catalog_pagination(self):
85
91
  origin_org = OrganizationFactory()
@@ -102,11 +108,23 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
102
108
  page_size=page_size,
103
109
  _external=True,
104
110
  )
111
+ # First create a dataset and it's associated dataservice, which should be listed
112
+ # last, and thus on the second page.
113
+ extra_dataset = DatasetFactory.create(organization=origin_org)
114
+ _extra_dataservice = DataserviceFactory.create(
115
+ datasets=[extra_dataset], organization=origin_org
116
+ )
117
+
118
+ # Create `total` datasets that should be listed on the first page up to `page_size`
105
119
  DatasetFactory.create_batch(total, organization=origin_org)
120
+ # And all the dataservices with no datasets, which will all be listed on the first page.
121
+ # See DataserviceQuerySet.filter_by_dataset_pagination.
122
+ DataserviceFactory.create_batch(total, organization=origin_org)
106
123
 
107
124
  # First page
108
125
  datasets = Dataset.objects.paginate(1, page_size)
109
- catalog = build_org_catalog(origin_org, datasets, format="json")
126
+ dataservices = Dataservice.objects.filter_by_dataset_pagination(datasets, 1)
127
+ catalog = build_org_catalog(origin_org, datasets, dataservices, format="json")
110
128
  graph = catalog.graph
111
129
 
112
130
  self.assertIsInstance(catalog, RdfResource)
@@ -115,9 +133,12 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
115
133
  self.assertIn(DCAT.Catalog, types)
116
134
  self.assertIn(HYDRA.Collection, types)
117
135
 
118
- self.assertEqual(catalog.value(HYDRA.totalItems), Literal(total))
136
+ self.assertEqual(catalog.value(HYDRA.totalItems), Literal(total + 1))
119
137
 
120
138
  self.assertEqual(len(list(catalog.objects(DCAT.dataset))), page_size)
139
+ # All dataservices that are not linked to a dataset are listed in the first page.
140
+ # See DataserviceQuerySet.filter_by_dataset_pagination.
141
+ self.assertEqual(len(list(catalog.objects(DCAT.dataservice))), total)
121
142
 
122
143
  paginations = list(graph.subjects(RDF.type, HYDRA.PartialCollectionView))
123
144
  self.assertEqual(len(paginations), 1)
@@ -130,7 +151,8 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
130
151
 
131
152
  # Second page
132
153
  datasets = Dataset.objects.paginate(2, page_size)
133
- catalog = build_org_catalog(origin_org, datasets, format="json")
154
+ dataservices = Dataservice.objects.filter_by_dataset_pagination(datasets, 2)
155
+ catalog = build_org_catalog(origin_org, datasets, dataservices, format="json")
134
156
  graph = catalog.graph
135
157
 
136
158
  self.assertIsInstance(catalog, RdfResource)
@@ -139,9 +161,12 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
139
161
  self.assertIn(DCAT.Catalog, types)
140
162
  self.assertIn(HYDRA.Collection, types)
141
163
 
142
- self.assertEqual(catalog.value(HYDRA.totalItems), Literal(total))
164
+ self.assertEqual(catalog.value(HYDRA.totalItems), Literal(total + 1))
143
165
 
144
- self.assertEqual(len(list(catalog.objects(DCAT.dataset))), 1)
166
+ # 5 datasets total, 3 on the first page, 2 on the second.
167
+ self.assertEqual(len(list(catalog.objects(DCAT.dataset))), 2)
168
+ # 1 extra_dataservice, listed on the same page as its associated extra_dataset.
169
+ self.assertEqual(len(list(catalog.objects(DCAT.dataservice))), 1)
145
170
 
146
171
  paginations = list(graph.subjects(RDF.type, HYDRA.PartialCollectionView))
147
172
  self.assertEqual(len(paginations), 1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: udata
3
- Version: 9.1.4.dev31191
3
+ Version: 9.1.4.dev31242
4
4
  Summary: Open data portal
5
5
  Home-page: https://github.com/opendatateam/udata
6
6
  Author: Opendata Team
@@ -147,6 +147,7 @@ It is collectively taken care of by members of the
147
147
  - Add an option to specify the port when using `inv serve` [#3123](https://github.com/opendatateam/udata/pull/3123)
148
148
  - Add a new `related_to` filter parameter to the activities API endpoint [#3127](https://github.com/opendatateam/udata/pull/3127)
149
149
  - Properly import the `Discussion.closed_by` from the fixtures [#3125](https://github.com/opendatateam/udata/pull/3125)
150
+ - Send an API token to Hydra when publishing resource events [#3130](https://github.com/opendatateam/udata/pull/3130)
150
151
 
151
152
  ## 9.1.3 (2024-08-01)
152
153
 
@@ -156,6 +157,7 @@ It is collectively taken care of by members of the
156
157
  - Update to the version v2.0.0 of udata-fixtures (with the dataservices)
157
158
  - Add type hints [#3111](https://github.com/opendatateam/udata/pull/3111)
158
159
  - Make sure requests v2.32.3 is used everywhere consistently [#3116](https://github.com/opendatateam/udata/pull/3116)
160
+ - Expose a dataservice in its organization's catalog, and expose a dataservice's catalog [#3122](https://github.com/opendatateam/udata/pull/3122)
159
161
 
160
162
  ## 9.1.2 (2024-07-29)
161
163
 
@@ -13,7 +13,7 @@ udata/mail.py,sha256=MShopArrtXyn8SnXtNbWUR0C4mTj1gI3a3Lf_1We-j4,2167
13
13
  udata/rdf.py,sha256=GDqnBuJd2KryJDpJjPuH0WpkZIPoOEa2uOACr5mNCik,13835
14
14
  udata/routing.py,sha256=x9WcpYikR45j3C_0Bi2Zoa2treSCW_oDYWMHwbdLAmE,7242
15
15
  udata/sentry.py,sha256=ekcxqUSqxfM98TtvCsPaOoX5i2l6PEcYt7kb4l3od-Q,3223
16
- udata/settings.py,sha256=ZcLUXKv-nRPjDSmb-vS1gVAT2xqChjdi2GMx1d5zpcw,17853
16
+ udata/settings.py,sha256=uvni6qc4o17hRk2j0ZHS8WEyw1DQCJ1PLTtyM4lyRdw,17891
17
17
  udata/sitemap.py,sha256=oRRWoPI7ZsFFnUAOqGT1YuXFFKHBe8EcRnUCNHD7xjM,979
18
18
  udata/tags.py,sha256=ydq4uokd6bzdeGVSpEXASVtGvDfO2LfQs9mptvvKJCM,631
19
19
  udata/tasks.py,sha256=hLdmHV7ozeq803BRjU6X3DT3oVsZrV1beQILpbjsfQI,4978
@@ -80,9 +80,9 @@ udata/core/contact_point/factories.py,sha256=MWu3fbE6G84e-7_gtsM5OifZPxHFRWDjw__
80
80
  udata/core/contact_point/forms.py,sha256=uioyzAySatniPdDdoBYyHj9n-m1LkMtaJpCnyS0-IRU,572
81
81
  udata/core/contact_point/models.py,sha256=yB82UcZJGeVhSIsvnpAT8yao7fmAyl59WVGphP3LGHw,309
82
82
  udata/core/dataservices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- udata/core/dataservices/api.py,sha256=7d4Gn9z9P40AapeMMEk63QY60Htg-LurUC63NzUfr2I,3092
83
+ udata/core/dataservices/api.py,sha256=LTYXOVeYp8ihWJiuZbUJWyjpeCRnXJrSG-jDMnjEY88,4574
84
84
  udata/core/dataservices/factories.py,sha256=LDk8vvG0zhW8J-ZX5LoJQDU13pqeIyjQ05muuMro_eA,876
85
- udata/core/dataservices/models.py,sha256=2eF6LImNXOKiLgqktNd5Lc-FS7NA47yQJ_VDoDoQvFU,5883
85
+ udata/core/dataservices/models.py,sha256=tSRfONyvU2QMqUbocE7x_J0gZYu7mU7iD_RwPnXvpXA,8260
86
86
  udata/core/dataservices/permissions.py,sha256=98zM_R4v2ZtRubflB7ajaVQz-DVc-pZBMgtKUYy34oI,169
87
87
  udata/core/dataservices/rdf.py,sha256=l1vItR7jhaTxs5f6kU6MAR32uvRR233GDbp1hIUbP3k,4673
88
88
  udata/core/dataservices/tasks.py,sha256=a43x1oKNF-EYmzM3O-8GQPJvZsgJmQiXOZx8Qti3M4E,960
@@ -95,7 +95,7 @@ udata/core/dataset/apiv2.py,sha256=VTE4eYx5udzOdHDUkD7TYpuCtppZMKp1okTSEE1fcgI,1
95
95
  udata/core/dataset/commands.py,sha256=__hPAk_6iHtgMnEG51ux0vbNWJHxUjXhi1ukH4hF5jY,3714
96
96
  udata/core/dataset/constants.py,sha256=pkOvrdNBq3k1ojJcv6oSg7kK1IUtb3PqLni-YJ3rKSY,2880
97
97
  udata/core/dataset/csv.py,sha256=XMl8MaYCEyGmkCZqRSWrGRxCht2C9e3aQYGwDQLXYT0,3618
98
- udata/core/dataset/events.py,sha256=7Zo_JdmCiSBRfL2uRRHgfQ_L8662SIV1Y0YlVQiV9To,3255
98
+ udata/core/dataset/events.py,sha256=LEL9_iMTZ0bZlli2TdkQtV8pCRbFQBd91Hqh_WCW84c,3444
99
99
  udata/core/dataset/exceptions.py,sha256=uKiayLSpSzsnLvClObS6hOO0qXEqvURKN7_w8eimQNU,498
100
100
  udata/core/dataset/factories.py,sha256=fRDWDlybR_ud4pDs1-ntWuYHKtV9LMHeBOBp2SmTT6M,9006
101
101
  udata/core/dataset/forms.py,sha256=H2oeAD8XckMugnwUcyuKv7o1Xq1rEIlLz9FtxujqbIE,6196
@@ -137,7 +137,7 @@ udata/core/metrics/signals.py,sha256=9mdJW__gR2GJT3huBr6HN2SDhKYJRgNbW9dnh48cAnU
137
137
  udata/core/metrics/tasks.py,sha256=Z6821OgupmDCN7Hj3esdb_udZbc1Haw7YpM48ytMIs4,797
138
138
  udata/core/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  udata/core/organization/activities.py,sha256=NY9pDzOVcdo2HZ-ax77lioiDGUZ8jpUguSLt_824saQ,1133
140
- udata/core/organization/api.py,sha256=K9TIBO-wy75ZbWFKo55rp5NlpjT9mNN-Zg2hO8h2BzE,17374
140
+ udata/core/organization/api.py,sha256=AAqgzfz5V3CKDWc_Ho69vhLZOigr8qs2JeVytUPrER0,17609
141
141
  udata/core/organization/api_fields.py,sha256=eE8Zswe01entlHoTTkbNkHTzm6N4THtv6Xhp9n2jj1Q,7193
142
142
  udata/core/organization/apiv2.py,sha256=1HQRQNu8r5dKPOGdkQyYfn7romhOoZydd4ZVUA0tQIk,3169
143
143
  udata/core/organization/commands.py,sha256=DsRAtFDZvTciYNsUWumQWdn0jnNmKW-PwfIHUUZoBb8,1591
@@ -149,7 +149,7 @@ udata/core/organization/metrics.py,sha256=UlHOBOph9s_QW-X7dkEivVITdyZ0ku9kLKl7Bm
149
149
  udata/core/organization/models.py,sha256=Jwqq5Yh0jxOuO4yesEO1-57oFRdfpahbZz407AZk7fg,8426
150
150
  udata/core/organization/notifications.py,sha256=i_36-l2y7fOGmnBmr5NDWmGGmrGRaCWbU-6XS4c2wQs,917
151
151
  udata/core/organization/permissions.py,sha256=GD-9TMtRppVCPaC1ysXYrONvGJV-ArzAOXm2XMKf9yo,1256
152
- udata/core/organization/rdf.py,sha256=VdvR-oTYmsuHsOev_tAcwUvnHkcJlhNHFewwbmjSU0k,1752
152
+ udata/core/organization/rdf.py,sha256=GmWliHFf356cUiXfNuK56b-O-zRNQqxLKJhNULGVcKA,1940
153
153
  udata/core/organization/search.py,sha256=Oie3BvGdyYTtiC8noJerlfDg5glMEk7acRQz7K5sVAk,2162
154
154
  udata/core/organization/signals.py,sha256=Ft1MBU9S41uxFN-rUrKHhiwedR1OYGv-ncuroKg8orY,488
155
155
  udata/core/organization/tasks.py,sha256=2Pd9ixeKNd7BGxBHrHYbR9AelhqkflX3ocnGgtoa8Uc,5641
@@ -181,7 +181,7 @@ udata/core/reuse/search.py,sha256=NkCRE8mGBdmlau0S9SsNPG0_zvB7MMNws64HGsq4yWM,30
181
181
  udata/core/reuse/signals.py,sha256=nDrEUpYKN0AdYiEbrR0z3nzXzjaRcD8SAMutwIDsQPM,155
182
182
  udata/core/reuse/tasks.py,sha256=oyi6SGNfCKRLLuS-tLUCs_jcfa43jOn4Wuzq65Vnj8A,1529
183
183
  udata/core/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
- udata/core/site/api.py,sha256=tj-FKb-f9GfV9ZZjyCM8pTitX9vTAp_tDTv8yTT-FsU,6178
184
+ udata/core/site/api.py,sha256=OwlzjgwdrtEemw63cxc4HYEGe5n-oN0sEXCzjt22ebA,4545
185
185
  udata/core/site/factories.py,sha256=O0nLFmjrFyemzcs-YwNukq5nqd383KBGrgL5bOQsGbA,378
186
186
  udata/core/site/forms.py,sha256=avEZ4rJhibF7sKexqMlKt1qMFiUHNrmJGKjZqcAyjrc,459
187
187
  udata/core/site/models.py,sha256=PVB4I2dTQDr5p5md3faVDGZSgOcGKbloHzjzdOG96_I,6266
@@ -422,8 +422,8 @@ udata/static/admin.css,sha256=RC7GvbVK8c5wDuELPeVdQpy3ab7HbHl1T4hUo5n-NVk,185167
422
422
  udata/static/admin.css.map,sha256=tUhFfsJUK3RrWCih9gUkf-Ywccuztxf4tqvXcN6zP3Y,626542
423
423
  udata/static/admin.js,sha256=4dT1TxL-t0lHOWeuQNv4UNQdBPdNeNI1HyoAKdJ1oag,1327903
424
424
  udata/static/admin.js.map,sha256=rYa-YLNxQK7QNoMSkGC2Gg26sb6qtqhj6rWm2B5laMk,8511948
425
- udata/static/common.js,sha256=dhOwxrKK4Uwj1tpwR1QMlKDAvYhuWwCy55imeLLlrcI,2252
426
- udata/static/common.js.map,sha256=EfcNLExHJZ_hlxH-nUibh7Wo4x8WWKg0ay1bEWlQa6c,14137
425
+ udata/static/common.js,sha256=sVGp4tCGeqGzOLbmK1ogqHjDC6AyyInxoeoOJoA7FQ0,2252
426
+ udata/static/common.js.map,sha256=5qcW8x62gFEqrTa9wZOJCbw_Xlw7nuC0J6O8grp-c0c,14137
427
427
  udata/static/fontawesome-webfont.eot,sha256=e_yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk,165742
428
428
  udata/static/fontawesome-webfont.svg,sha256=rWFXkmwWIrpOHQPUePFUE2hSS_xG9R5C_g2UX37zI-Q,444379
429
429
  udata/static/fontawesome-webfont.ttf,sha256=qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg,165548
@@ -442,8 +442,8 @@ udata/static/chunks/1.c53dfc91009cfdf4583b.js,sha256=_0SRYucqFnI1MFd_oc6jxiF62iD
442
442
  udata/static/chunks/1.c53dfc91009cfdf4583b.js.map,sha256=Qx0PVyJdsbJe2b4vJ5GO6jbQsqmB7LpZqmCqlWcmcp8,1740520
443
443
  udata/static/chunks/10.c1c9496ebfc8949f3de2.js,sha256=_c1TZ9A3QYiV16Ia4ZTOtCdgS4JcJroS6UsJpvJXpGo,414754
444
444
  udata/static/chunks/10.c1c9496ebfc8949f3de2.js.map,sha256=nUjRgXE2w07GZL2B3pmsW7PFExt9O1V7r7WeGs2IITo,2736101
445
- udata/static/chunks/11.18f1cc16362b76373c40.js,sha256=OsdV4LAscV5dG4OZr6Iz7s43SX4bRX47VO_w3sTTAHw,395574
446
- udata/static/chunks/11.18f1cc16362b76373c40.js.map,sha256=r3Qy-8c3rm4xyZPhiVNdBpCvQF0skPASzssvQ683oZ0,2268995
445
+ udata/static/chunks/11.8910c81ce1e1b0f4a71f.js,sha256=BrwTFaciNFA6VR-60duezP0BPgU9DwwqTTsWTcQ7dWo,395574
446
+ udata/static/chunks/11.8910c81ce1e1b0f4a71f.js.map,sha256=CeIH74Q66Vb_GV12OYVYWvsbBONjLhCeC0192ztnsyc,2268995
447
447
  udata/static/chunks/12.576e63b7a990f8eab784.js,sha256=zYqbe5FZP9NI5Sv_9D-bOwq4JcxQjZpMj--3YE2iJ00,420868
448
448
  udata/static/chunks/12.576e63b7a990f8eab784.js.map,sha256=v5Vc1o2TJwPJX36_WeItlxKMfaCOZhbAIFoyVa0d4bo,2441014
449
449
  udata/static/chunks/13.fd1ca1cf5b2c1854ed51.js,sha256=P83sk30g5FSkpngTNv39pTEqSi4OGWFoIz136FdZZOQ,420359
@@ -458,8 +458,8 @@ udata/static/chunks/17.4687eae5e18d3049fe7b.js,sha256=Q50AMYCTzlZH3gSw0-dLD-c7yR
458
458
  udata/static/chunks/17.4687eae5e18d3049fe7b.js.map,sha256=Uf7ofeDK8Lg4Ga6htNiqIcmBpfAUhMq728sCOBq8xqY,681947
459
459
  udata/static/chunks/18.b7098bfe5401f75973fa.js,sha256=ntlr4y2ssL4wG8pPprUu7x23Uq81n7pSQym1nwQb1jk,50398
460
460
  udata/static/chunks/18.b7098bfe5401f75973fa.js.map,sha256=tPyhZOsDl9NOfS9X8c9e80nShe6OztZ-ZrS9e2Rq1co,277843
461
- udata/static/chunks/19.2061dca8438f415029a3.js,sha256=nERvnckvH5VSiFvBTAhq7ACCaaUAW1T5P6lZebOZYwU,203430
462
- udata/static/chunks/19.2061dca8438f415029a3.js.map,sha256=cqUcf1oMihUoiExcnuxCHss33qcb11NIOZx_fTYVzeI,1080009
461
+ udata/static/chunks/19.28f355064e529318c9b1.js,sha256=twTXAI2UJWE7ouqTqrDAraFQQjQUs-wXkbvTdW6qSgI,203430
462
+ udata/static/chunks/19.28f355064e529318c9b1.js.map,sha256=lCnCAKFsjLzHo_h2OWq8MZLt2XHiP4bG3YiruHda8t8,1080009
463
463
  udata/static/chunks/2.c6dba6a3f04d53321e86.js,sha256=Bq6jt0KQ6stPPHb27Uwem29GurSFw3yxRKv7QW7Dsng,276355
464
464
  udata/static/chunks/2.c6dba6a3f04d53321e86.js.map,sha256=5V4YKp8cnITwJzQGHSGDObwdHrDRNcfoq2v0M3XREzU,1554832
465
465
  udata/static/chunks/20.17e9e766625991aa0a7b.js,sha256=3d-hTgMZBST-fYU7dJyJaAQgMBUzqbfWKxMuImrfoX8,36778
@@ -490,14 +490,14 @@ udata/static/chunks/33.c1ee77b51bb867f3d7cd.js,sha256=o8FdS-Gqfy0aWTU2K1fCET_Y2Y
490
490
  udata/static/chunks/33.c1ee77b51bb867f3d7cd.js.map,sha256=iP97-8M1uyG97JTOKC8gUcc7gGHFR-SV0DFNVsFgCag,706989
491
491
  udata/static/chunks/4.3720aa269a60fa6d03b4.js,sha256=i7SWsrLWFQK9x95ScXBfC7D4yfVyQqqdKSGmh4mk55E,606703
492
492
  udata/static/chunks/4.3720aa269a60fa6d03b4.js.map,sha256=1oGQd0-EZaN1jQaNXSh8IsGBnNsLImIXAXt8XmvbcgE,3712817
493
- udata/static/chunks/5.d17ff266ecc1ad0331fb.js,sha256=Eb0wcj2dNNIyLl0qDwOhHSF0wxhtY69fD6lvbwVBYao,578685
494
- udata/static/chunks/5.d17ff266ecc1ad0331fb.js.map,sha256=cvnb85U8gEGcsGRktTdx6Xs_PPXz5ey1IOZa53nCaL8,3583618
495
- udata/static/chunks/6.0db5d3ff22944de7edd5.js,sha256=psE775ajRzyqoiAUwB5iPPJKzzSeqjQxj6krR2bvhGc,609578
496
- udata/static/chunks/6.0db5d3ff22944de7edd5.js.map,sha256=nIrUBSXBUfYuWsLDFxazvWVYSX3rOuDm-ajJphmYMKc,3781963
493
+ udata/static/chunks/5.270f2cb840d87976aecd.js,sha256=qof0xC3gVfWnl5WP91bfhzd7bzoScmTcKp5IUrp_ytw,578685
494
+ udata/static/chunks/5.270f2cb840d87976aecd.js.map,sha256=iD-ljVyV6tpHRiMj5wUSE52S4PPRcNmXP97gEwZhfa8,3583618
495
+ udata/static/chunks/6.c433506a3004b8f4d5fb.js,sha256=01IbKOG3MtmNwquDkVQaKNQMfYujRMlDmdBXyQhzSnU,609578
496
+ udata/static/chunks/6.c433506a3004b8f4d5fb.js.map,sha256=TrU2oHFEGSuzEFGG_UuxnsK9gdFqqkFZMweSQGU61fc,3781963
497
497
  udata/static/chunks/7.6ce1bc0456cf60b71a71.js,sha256=3VciyJI920D2bjkT28AxZ6xnoouUEjjSIUyB3iUhWNY,153013
498
498
  udata/static/chunks/7.6ce1bc0456cf60b71a71.js.map,sha256=An_Z-RqmY4LrX87JOkl1LhNctHRhrl2V9wJvgIYCef0,792279
499
- udata/static/chunks/8.292c6a157d71f0b21b6f.js,sha256=EpgPzfJnTbz-RfxtpU4RjjZQjOiqxUxAdxg49W2yEwA,222870
500
- udata/static/chunks/8.292c6a157d71f0b21b6f.js.map,sha256=8kPWd385Fi0nBGzpqalgcY0-dl0Fc5-8MflO722IqYc,1205115
499
+ udata/static/chunks/8.4aa47633f437db19feb5.js,sha256=d2NvpmY1vDCdk-FOIa6f4OS4V8ERhdKarSz_FTxQYro,222870
500
+ udata/static/chunks/8.4aa47633f437db19feb5.js.map,sha256=Z88ZteXEvaDkm1crL2JlnTvBRAqU06zuPCyacN3jXZM,1205115
501
501
  udata/static/chunks/9.8ad948dd393d38f07a7a.js,sha256=f_STNW3kkPshGI2BcDnlvQybcrxP0tBq_w0sBig0u7E,416730
502
502
  udata/static/chunks/9.8ad948dd393d38f07a7a.js.map,sha256=FCjw1dvwaZ3duUHvwFqKTUKIDYrWqm7OPQ_MRG9-tso,2746345
503
503
  udata/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -601,7 +601,7 @@ udata/tests/api/test_activities_api.py,sha256=RjDDeNle3T-ydVnh6BRypqxAE_244-DXaK
601
601
  udata/tests/api/test_auth_api.py,sha256=0Y_JXQ4x8jvc_pp4g3H6gZ_X0QVGM6TaZ2IN9LeOWEg,21657
602
602
  udata/tests/api/test_base_api.py,sha256=2w_vz0eEuq3P3aN-ByvxGc3VZAo7XtgatFfcrzf2uEU,2244
603
603
  udata/tests/api/test_contact_points.py,sha256=pyakkKnM4lH_asuEoXq9lQyJC9to6ZxSp4QQrHh1c1U,1041
604
- udata/tests/api/test_dataservices_api.py,sha256=CeYyjezBvjHkE4rEneprw19artxgdSL3VmfqxZQCrus,11993
604
+ udata/tests/api/test_dataservices_api.py,sha256=dfPonOmHcx83KLeUa2uqVaa2DJ_Xx91fHBqmFOlOP10,14636
605
605
  udata/tests/api/test_datasets_api.py,sha256=LQAUaYY8Sj2HibHu6Qg1T46LlLxlPRa_aP0r1Z7A0jc,80614
606
606
  udata/tests/api/test_fields.py,sha256=OW85Z5MES5HeWOpapeem8OvR1cIcrqW-xMWpdZO4LZ8,1033
607
607
  udata/tests/api/test_follow_api.py,sha256=fccgVNfcqET221PPS3p7qzb9hpvbBBUGhV-l4UeOpyk,3352
@@ -629,7 +629,7 @@ udata/tests/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
629
629
  udata/tests/dataset/test_csv_adapter.py,sha256=Bupsw2vmkZjFLAbVATSek-6M_WZRsidXNGd28UQRVdE,3444
630
630
  udata/tests/dataset/test_dataset_actions.py,sha256=bgDjVYjOvu3sX_FCTCzf2snZYSprsqor2nAhIVuokSs,722
631
631
  udata/tests/dataset/test_dataset_commands.py,sha256=zMPJG2wYwKBee2zI65kmboxf59Zqa84DDjT8V5wj9uo,801
632
- udata/tests/dataset/test_dataset_events.py,sha256=vF40F6vGLgflO7b-5MyAIWlWLVO12CtBkeBdfpMzZdo,2828
632
+ udata/tests/dataset/test_dataset_events.py,sha256=JP-qC9wxaCFn4CLUI3WWCqiDinXgfaa5nF9j-YhB0iQ,4034
633
633
  udata/tests/dataset/test_dataset_model.py,sha256=oaqm7q3DwZa4GLCyv7rj3rvtBIKxdCf4wUQdYo1pOiU,29745
634
634
  udata/tests/dataset/test_dataset_rdf.py,sha256=byBjy_f2fs9_DV0P5HzDkYObJGNXHSCiuN4c5X_3M8E,30086
635
635
  udata/tests/dataset/test_dataset_tasks.py,sha256=rSafDjCiOyEb2_tVUDN4wqGylF6Yf9VNB769SLmxlwI,2283
@@ -661,7 +661,7 @@ udata/tests/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
661
661
  udata/tests/organization/test_csv_adapter.py,sha256=vgTVbPMqKipcdg7wi99pHk9ZNhqtuU-yneEaVW3pZmU,1564
662
662
  udata/tests/organization/test_notifications.py,sha256=PGmME5BbYVtcPffeSE1sx47J6iAfm4RDAZIRv_MXDFE,1366
663
663
  udata/tests/organization/test_organization_model.py,sha256=98ud3w37hn4VXqJgpxM43UGr2mE1YHM1m0IMCPE9J9E,2030
664
- udata/tests/organization/test_organization_rdf.py,sha256=ryr3OeJ6u8KeRlcSp7EL2mib7gvBNLVjKJ_0c824Uh0,6307
664
+ udata/tests/organization/test_organization_rdf.py,sha256=v_gC4BI0hCFKDkK0CMmZO6PBwqe--pc0OLhyftZpQeg,8086
665
665
  udata/tests/organization/test_organization_tasks.py,sha256=ehPirwfLqaEcnJ9TLk3jGw3Xh-CVx1WXhvIDFYrT2iQ,2845
666
666
  udata/tests/reuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
667
667
  udata/tests/reuse/test_reuse_model.py,sha256=ro_p0GmDvkaP6jQmCxDDLiGBFetDInjn9McnHRglWZY,3989
@@ -697,9 +697,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=WpPzAqVd2Onv_kz45ULUySKPLrpjcc
697
697
  udata/translations/pt/LC_MESSAGES/udata.po,sha256=18Op9RUITewoDRewlOdYzzq6gjsf1lsvepACV1d7zxs,44976
698
698
  udata/translations/sr/LC_MESSAGES/udata.mo,sha256=NIYRNhVoETZUvIvWm3cCW7DtMBAnS2vXzZjMF5ZzD_c,28500
699
699
  udata/translations/sr/LC_MESSAGES/udata.po,sha256=rQB-4V4WJ7bURj6g2j653vItr5TMHadcLQxec7_fDmg,51545
700
- udata-9.1.4.dev31191.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
701
- udata-9.1.4.dev31191.dist-info/METADATA,sha256=hdGyZDlTnaExRiHPp-q6h0P-JeYSyTN8AJIHpysI_tg,129137
702
- udata-9.1.4.dev31191.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
703
- udata-9.1.4.dev31191.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
704
- udata-9.1.4.dev31191.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
705
- udata-9.1.4.dev31191.dist-info/RECORD,,
700
+ udata-9.1.4.dev31242.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
701
+ udata-9.1.4.dev31242.dist-info/METADATA,sha256=OJzcCufoZy2MrIABx15FM73LTwwH-1-XFqDXGpTf2NU,129401
702
+ udata-9.1.4.dev31242.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
703
+ udata-9.1.4.dev31242.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
704
+ udata-9.1.4.dev31242.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
705
+ udata-9.1.4.dev31242.dist-info/RECORD,,