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.
- udata/core/dataservices/api.py +37 -1
- udata/core/dataservices/models.py +38 -0
- udata/core/dataset/events.py +4 -1
- udata/core/organization/api.py +7 -1
- udata/core/organization/rdf.py +4 -1
- udata/core/site/api.py +1 -26
- udata/settings.py +1 -0
- udata/static/chunks/{11.18f1cc16362b76373c40.js → 11.8910c81ce1e1b0f4a71f.js} +3 -3
- udata/static/chunks/{11.18f1cc16362b76373c40.js.map → 11.8910c81ce1e1b0f4a71f.js.map} +1 -1
- udata/static/chunks/{19.2061dca8438f415029a3.js → 19.28f355064e529318c9b1.js} +3 -3
- udata/static/chunks/{19.2061dca8438f415029a3.js.map → 19.28f355064e529318c9b1.js.map} +1 -1
- udata/static/chunks/{5.d17ff266ecc1ad0331fb.js → 5.270f2cb840d87976aecd.js} +3 -3
- udata/static/chunks/{5.d17ff266ecc1ad0331fb.js.map → 5.270f2cb840d87976aecd.js.map} +1 -1
- udata/static/chunks/{6.0db5d3ff22944de7edd5.js → 6.c433506a3004b8f4d5fb.js} +3 -3
- udata/static/chunks/{6.0db5d3ff22944de7edd5.js.map → 6.c433506a3004b8f4d5fb.js.map} +1 -1
- udata/static/chunks/{8.292c6a157d71f0b21b6f.js → 8.4aa47633f437db19feb5.js} +2 -2
- udata/static/chunks/{8.292c6a157d71f0b21b6f.js.map → 8.4aa47633f437db19feb5.js.map} +1 -1
- udata/static/common.js +1 -1
- udata/static/common.js.map +1 -1
- udata/tests/api/test_dataservices_api.py +59 -0
- udata/tests/dataset/test_dataset_events.py +28 -0
- udata/tests/organization/test_organization_rdf.py +31 -6
- {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/METADATA +3 -1
- {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/RECORD +28 -28
- {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/LICENSE +0 -0
- {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/WHEEL +0 -0
- {udata-9.1.4.dev31191.dist-info → udata-9.1.4.dev31242.dist-info}/entry_points.txt +0 -0
- {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:"
|
|
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
|
udata/static/common.js.map
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
426
|
-
udata/static/common.js.map,sha256=
|
|
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.
|
|
446
|
-
udata/static/chunks/11.
|
|
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.
|
|
462
|
-
udata/static/chunks/19.
|
|
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.
|
|
494
|
-
udata/static/chunks/5.
|
|
495
|
-
udata/static/chunks/6.
|
|
496
|
-
udata/static/chunks/6.
|
|
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.
|
|
500
|
-
udata/static/chunks/8.
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
701
|
-
udata-9.1.4.
|
|
702
|
-
udata-9.1.4.
|
|
703
|
-
udata-9.1.4.
|
|
704
|
-
udata-9.1.4.
|
|
705
|
-
udata-9.1.4.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|