udata 10.1.3.dev34359__py2.py3-none-any.whl → 10.1.4__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/__init__.py +1 -1
- udata/core/dataset/api.py +15 -1
- udata/core/dataset/apiv2.py +26 -4
- udata/core/dataset/models.py +40 -3
- udata/core/user/models.py +1 -1
- udata/core/user/tasks.py +6 -6
- udata/harvest/tests/dcat/udata.xml +180 -0
- udata/harvest/tests/test_dcat_backend.py +65 -0
- udata/rdf.py +6 -1
- udata/routing.py +13 -2
- udata/settings.py +4 -0
- udata/static/chunks/{11.51d706fb9521c16976bc.js → 11.55ab79044cda0271b595.js} +3 -3
- udata/static/chunks/{11.51d706fb9521c16976bc.js.map → 11.55ab79044cda0271b595.js.map} +1 -1
- udata/static/chunks/{13.f29411b06be1883356a3.js → 13.2d06442dd9a05d9777b5.js} +2 -2
- udata/static/chunks/{13.f29411b06be1883356a3.js.map → 13.2d06442dd9a05d9777b5.js.map} +1 -1
- udata/static/chunks/{17.3bd0340930d4a314ce9c.js → 17.e8e4caaad5cb0cc0bacc.js} +2 -2
- udata/static/chunks/{17.3bd0340930d4a314ce9c.js.map → 17.e8e4caaad5cb0cc0bacc.js.map} +1 -1
- udata/static/chunks/{19.8da42e8359d72afc2618.js → 19.f03a102365af4315f9db.js} +3 -3
- udata/static/chunks/{19.8da42e8359d72afc2618.js.map → 19.f03a102365af4315f9db.js.map} +1 -1
- udata/static/chunks/{5.0fa1408dae4e76b87b2e.js → 5.5660483641193b7f8295.js} +3 -3
- udata/static/chunks/{5.0fa1408dae4e76b87b2e.js.map → 5.5660483641193b7f8295.js.map} +1 -1
- udata/static/chunks/{6.d663709d877baa44a71e.js → 6.30dce49d17db07600b06.js} +3 -3
- udata/static/chunks/{6.d663709d877baa44a71e.js.map → 6.30dce49d17db07600b06.js.map} +1 -1
- udata/static/chunks/{8.54e44b102164ae5e7a67.js → 8.b58fcd977fcaf3415571.js} +2 -2
- udata/static/chunks/{8.54e44b102164ae5e7a67.js.map → 8.b58fcd977fcaf3415571.js.map} +1 -1
- udata/static/common.js +1 -1
- udata/static/common.js.map +1 -1
- udata/templates/mail/account_inactivity.html +1 -1
- udata/templates/mail/account_inactivity.txt +1 -1
- udata/tests/api/test_datasets_api.py +49 -8
- udata/tests/apiv2/test_datasets.py +21 -0
- udata/tests/dataset/test_dataset_model.py +25 -0
- udata/tests/user/test_user_tasks.py +7 -7
- {udata-10.1.3.dev34359.dist-info → udata-10.1.4.dist-info}/METADATA +10 -2
- {udata-10.1.3.dev34359.dist-info → udata-10.1.4.dist-info}/RECORD +39 -38
- {udata-10.1.3.dev34359.dist-info → udata-10.1.4.dist-info}/LICENSE +0 -0
- {udata-10.1.3.dev34359.dist-info → udata-10.1.4.dist-info}/WHEEL +0 -0
- {udata-10.1.3.dev34359.dist-info → udata-10.1.4.dist-info}/entry_points.txt +0 -0
- {udata-10.1.3.dev34359.dist-info → udata-10.1.4.dist-info}/top_level.txt +0 -0
udata/static/common.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e){function __webpack_require__(c){if(a[c])return a[c].exports;var r=a[c]={exports:{},id:c,loaded:!1};return e[c].call(r.exports,r,r.exports,__webpack_require__),r.loaded=!0,r.exports}var c=window.webpackJsonp;window.webpackJsonp=function(f,
|
|
1
|
+
!function(e){function __webpack_require__(c){if(a[c])return a[c].exports;var r=a[c]={exports:{},id:c,loaded:!1};return e[c].call(r.exports,r,r.exports,__webpack_require__),r.loaded=!0,r.exports}var c=window.webpackJsonp;window.webpackJsonp=function(f,b){for(var d,t,_=0,n=[];_<f.length;_++)t=f[_],r[t]&&n.push.apply(n,r[t]),r[t]=0;for(d in b){var i=b[d];switch(typeof i){case"object":e[d]=function(c){var a=c.slice(1),r=c[0];return function(c,f,b){e[r].apply(this,[c,f,b].concat(a))}}(i);break;case"function":e[d]=i;break;default:e[d]=e[i]}}for(c&&c(f,b);n.length;)n.shift().call(null,__webpack_require__);if(b[0])return a[0]=0,__webpack_require__(0)};var a={},r={31:0};__webpack_require__.e=function(e,c){if(0===r[e])return c.call(null,__webpack_require__);if(void 0!==r[e])r[e].push(c);else{r[e]=[c];var a=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.src=__webpack_require__.p+"chunks/"+e+"."+{0:"4dd4f378428d1eed85c8",1:"0a96f54313c89e541ccb",2:"c67aa76cc078c193aed5",3:"174a03e48d267820919b",4:"98dca3045c034c154d5f",5:"5660483641193b7f8295",6:"30dce49d17db07600b06",7:"896bbffe39433bb598f7",8:"b58fcd977fcaf3415571",9:"07515e5187f475bce828",10:"471164b2a9fe15614797",11:"55ab79044cda0271b595",12:"1be61e0201691821bff6",13:"2d06442dd9a05d9777b5",14:"bc3f6bc0a67517e7b30f",15:"2f5d8e3d4aa4c46188d7",16:"aaa39ef2d7e82594efc8",17:"e8e4caaad5cb0cc0bacc",18:"56444ebd2456a4ba2201",19:"f03a102365af4315f9db",20:"3d4e02d1205a3c9e26c5",21:"af1610ce169cf6d1cf4e",22:"6a69068a7dd9d767dea1",23:"663b89b79d755a70deef",24:"d149cf025cbbca231d88",25:"1fafd6424761185cc14b",26:"402064cda3665d56f7fc",27:"997802f273a0c88f7b6d",28:"e68c475c6ca1e2eec92c",29:"2f4a04c61d75f2ef18ab",30:"e97e10c9246818e2b4b2",32:"03cc9867716dd58b9302",33:"011b367beb543774f950"}[e]+".js",a.appendChild(f)}},__webpack_require__.m=e,__webpack_require__.c=a,__webpack_require__.p="/static/"}(function(e){for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c))switch(typeof e[c]){case"function":break;case"object":e[c]=function(c){var a=c.slice(1),r=e[c[0]];return function(e,c,f){r.apply(this,[e,c,f].concat(a))}}(e[c]);break;default:e[c]=e[e[c]]}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 81dd90b2a91a2994944e"],"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\":\"4dd4f378428d1eed85c8\",\"1\":\"0a96f54313c89e541ccb\",\"2\":\"c67aa76cc078c193aed5\",\"3\":\"174a03e48d267820919b\",\"4\":\"98dca3045c034c154d5f\",\"5\":\"0fa1408dae4e76b87b2e\",\"6\":\"d663709d877baa44a71e\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"54e44b102164ae5e7a67\",\"9\":\"07515e5187f475bce828\",\"10\":\"471164b2a9fe15614797\",\"11\":\"51d706fb9521c16976bc\",\"12\":\"1be61e0201691821bff6\",\"13\":\"f29411b06be1883356a3\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"3bd0340930d4a314ce9c\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"8da42e8359d72afc2618\",\"20\":\"3d4e02d1205a3c9e26c5\",\"21\":\"af1610ce169cf6d1cf4e\",\"22\":\"6a69068a7dd9d767dea1\",\"23\":\"663b89b79d755a70deef\",\"24\":\"d149cf025cbbca231d88\",\"25\":\"1fafd6424761185cc14b\",\"26\":\"402064cda3665d56f7fc\",\"27\":\"997802f273a0c88f7b6d\",\"28\":\"e68c475c6ca1e2eec92c\",\"29\":\"2f4a04c61d75f2ef18ab\",\"30\":\"e97e10c9246818e2b4b2\",\"32\":\"03cc9867716dd58b9302\",\"33\":\"011b367beb543774f950\"}[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\":\"4dd4f378428d1eed85c8\",\"1\":\"0a96f54313c89e541ccb\",\"2\":\"c67aa76cc078c193aed5\",\"3\":\"174a03e48d267820919b\",\"4\":\"98dca3045c034c154d5f\",\"5\":\"0fa1408dae4e76b87b2e\",\"6\":\"d663709d877baa44a71e\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"54e44b102164ae5e7a67\",\"9\":\"07515e5187f475bce828\",\"10\":\"471164b2a9fe15614797\",\"11\":\"51d706fb9521c16976bc\",\"12\":\"1be61e0201691821bff6\",\"13\":\"f29411b06be1883356a3\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"3bd0340930d4a314ce9c\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"8da42e8359d72afc2618\",\"20\":\"3d4e02d1205a3c9e26c5\",\"21\":\"af1610ce169cf6d1cf4e\",\"22\":\"6a69068a7dd9d767dea1\",\"23\":\"663b89b79d755a70deef\",\"24\":\"d149cf025cbbca231d88\",\"25\":\"1fafd6424761185cc14b\",\"26\":\"402064cda3665d56f7fc\",\"27\":\"997802f273a0c88f7b6d\",\"28\":\"e68c475c6ca1e2eec92c\",\"29\":\"2f4a04c61d75f2ef18ab\",\"30\":\"e97e10c9246818e2b4b2\",\"32\":\"03cc9867716dd58b9302\",\"33\":\"011b367beb543774f950\"}[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 81dd90b2a91a2994944e\n **/"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap 189aede6efde10215a58"],"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\":\"4dd4f378428d1eed85c8\",\"1\":\"0a96f54313c89e541ccb\",\"2\":\"c67aa76cc078c193aed5\",\"3\":\"174a03e48d267820919b\",\"4\":\"98dca3045c034c154d5f\",\"5\":\"5660483641193b7f8295\",\"6\":\"30dce49d17db07600b06\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"b58fcd977fcaf3415571\",\"9\":\"07515e5187f475bce828\",\"10\":\"471164b2a9fe15614797\",\"11\":\"55ab79044cda0271b595\",\"12\":\"1be61e0201691821bff6\",\"13\":\"2d06442dd9a05d9777b5\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"e8e4caaad5cb0cc0bacc\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"f03a102365af4315f9db\",\"20\":\"3d4e02d1205a3c9e26c5\",\"21\":\"af1610ce169cf6d1cf4e\",\"22\":\"6a69068a7dd9d767dea1\",\"23\":\"663b89b79d755a70deef\",\"24\":\"d149cf025cbbca231d88\",\"25\":\"1fafd6424761185cc14b\",\"26\":\"402064cda3665d56f7fc\",\"27\":\"997802f273a0c88f7b6d\",\"28\":\"e68c475c6ca1e2eec92c\",\"29\":\"2f4a04c61d75f2ef18ab\",\"30\":\"e97e10c9246818e2b4b2\",\"32\":\"03cc9867716dd58b9302\",\"33\":\"011b367beb543774f950\"}[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\":\"4dd4f378428d1eed85c8\",\"1\":\"0a96f54313c89e541ccb\",\"2\":\"c67aa76cc078c193aed5\",\"3\":\"174a03e48d267820919b\",\"4\":\"98dca3045c034c154d5f\",\"5\":\"5660483641193b7f8295\",\"6\":\"30dce49d17db07600b06\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"b58fcd977fcaf3415571\",\"9\":\"07515e5187f475bce828\",\"10\":\"471164b2a9fe15614797\",\"11\":\"55ab79044cda0271b595\",\"12\":\"1be61e0201691821bff6\",\"13\":\"2d06442dd9a05d9777b5\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"e8e4caaad5cb0cc0bacc\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"f03a102365af4315f9db\",\"20\":\"3d4e02d1205a3c9e26c5\",\"21\":\"af1610ce169cf6d1cf4e\",\"22\":\"6a69068a7dd9d767dea1\",\"23\":\"663b89b79d755a70deef\",\"24\":\"d149cf025cbbca231d88\",\"25\":\"1fafd6424761185cc14b\",\"26\":\"402064cda3665d56f7fc\",\"27\":\"997802f273a0c88f7b6d\",\"28\":\"e68c475c6ca1e2eec92c\",\"29\":\"2f4a04c61d75f2ef18ab\",\"30\":\"e97e10c9246818e2b4b2\",\"32\":\"03cc9867716dd58b9302\",\"33\":\"011b367beb543774f950\"}[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 189aede6efde10215a58\n **/"],"sourceRoot":""}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
{{ _(
|
|
7
7
|
'Your account (%(user_email)s) has been inactive for %(inactivity_years)d years or more.',
|
|
8
8
|
user_email=user.email,
|
|
9
|
-
inactivity_years=config.
|
|
9
|
+
inactivity_years=config.YEARS_OF_INACTIVITY_BEFORE_DELETION
|
|
10
10
|
)
|
|
11
11
|
}}
|
|
12
12
|
</p>
|
|
@@ -1287,6 +1287,54 @@ class DatasetResourceAPITest(APITestCase):
|
|
|
1287
1287
|
)
|
|
1288
1288
|
self.assertEqual(self.dataset.last_modified, initial_last_modified)
|
|
1289
1289
|
|
|
1290
|
+
def test_invalid_reorder(self):
|
|
1291
|
+
self.dataset.resources = ResourceFactory.build_batch(3)
|
|
1292
|
+
self.dataset.save()
|
|
1293
|
+
|
|
1294
|
+
initial_order = [r.id for r in self.dataset.resources]
|
|
1295
|
+
|
|
1296
|
+
# Not enough resources
|
|
1297
|
+
wrong_order_not_enough_resources = initial_order[:2]
|
|
1298
|
+
response = self.put(
|
|
1299
|
+
url_for("api.resources", dataset=self.dataset), wrong_order_not_enough_resources
|
|
1300
|
+
)
|
|
1301
|
+
self.assertStatus(response, 400)
|
|
1302
|
+
self.assertEqual(
|
|
1303
|
+
response.json["message"], "All resources must be reordered, you provided 2 out of 3"
|
|
1304
|
+
)
|
|
1305
|
+
|
|
1306
|
+
# Too many resources
|
|
1307
|
+
wrong_order_too_many_resources = initial_order + [str(uuid4())]
|
|
1308
|
+
response = self.put(
|
|
1309
|
+
url_for("api.resources", dataset=self.dataset), wrong_order_too_many_resources
|
|
1310
|
+
)
|
|
1311
|
+
self.assertStatus(response, 400)
|
|
1312
|
+
self.assertEqual(
|
|
1313
|
+
response.json["message"], "All resources must be reordered, you provided 4 out of 3"
|
|
1314
|
+
)
|
|
1315
|
+
|
|
1316
|
+
# Duplicated resources
|
|
1317
|
+
wrong_order_duplicated_resources = [initial_order[0]] * 3
|
|
1318
|
+
response = self.put(
|
|
1319
|
+
url_for("api.resources", dataset=self.dataset), wrong_order_duplicated_resources
|
|
1320
|
+
)
|
|
1321
|
+
self.assertStatus(response, 400)
|
|
1322
|
+
self.assertEqual(
|
|
1323
|
+
response.json["message"],
|
|
1324
|
+
f"Resource ids must match existing ones in dataset, ie: {set(str(r.id) for r in self.dataset.resources)}",
|
|
1325
|
+
)
|
|
1326
|
+
|
|
1327
|
+
# Resources that don't belong to this dataset
|
|
1328
|
+
wrong_order_random_resources_id = [str(uuid4()) for _ in range(3)]
|
|
1329
|
+
response = self.put(
|
|
1330
|
+
url_for("api.resources", dataset=self.dataset), wrong_order_random_resources_id
|
|
1331
|
+
)
|
|
1332
|
+
self.assertStatus(response, 400)
|
|
1333
|
+
self.assertEqual(
|
|
1334
|
+
response.json["message"],
|
|
1335
|
+
f"Resource ids must match existing ones in dataset, ie: {set(str(r.id) for r in self.dataset.resources)}",
|
|
1336
|
+
)
|
|
1337
|
+
|
|
1290
1338
|
def test_update_local(self):
|
|
1291
1339
|
resource = ResourceFactory()
|
|
1292
1340
|
self.dataset.resources.append(resource)
|
|
@@ -1366,17 +1414,10 @@ class DatasetResourceAPITest(APITestCase):
|
|
|
1366
1414
|
}
|
|
1367
1415
|
for id in ids
|
|
1368
1416
|
]
|
|
1369
|
-
data.append(
|
|
1370
|
-
{
|
|
1371
|
-
"title": faker.sentence(),
|
|
1372
|
-
"description": faker.text(),
|
|
1373
|
-
"url": faker.url(),
|
|
1374
|
-
}
|
|
1375
|
-
)
|
|
1376
1417
|
response = self.put(url_for("api.resources", dataset=self.dataset), data)
|
|
1377
1418
|
self.assert200(response)
|
|
1378
1419
|
self.dataset.reload()
|
|
1379
|
-
self.assertEqual(len(self.dataset.resources),
|
|
1420
|
+
self.assertEqual(len(self.dataset.resources), 2)
|
|
1380
1421
|
for idx, id in enumerate(ids):
|
|
1381
1422
|
resource = self.dataset.resources[idx]
|
|
1382
1423
|
rdata = data[idx]
|
|
@@ -17,6 +17,27 @@ from udata.tests.helpers import assert_not_emit
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class DatasetAPIV2Test(APITestCase):
|
|
20
|
+
def test_list_datasets(self):
|
|
21
|
+
resources_a = [ResourceFactory() for _ in range(2)]
|
|
22
|
+
dataset_a = DatasetFactory(title="Dataset A", resources=resources_a)
|
|
23
|
+
|
|
24
|
+
resources_b = [ResourceFactory() for _ in range(4)]
|
|
25
|
+
dataset_b = DatasetFactory(title="Dataset B", resources=resources_b)
|
|
26
|
+
|
|
27
|
+
response = self.get(url_for("apiv2.datasets"))
|
|
28
|
+
self.assert200(response)
|
|
29
|
+
data = response.json
|
|
30
|
+
|
|
31
|
+
assert len(data["data"]) == 2
|
|
32
|
+
assert data["data"][1]["title"] == dataset_a.title
|
|
33
|
+
assert data["data"][0]["title"] == dataset_b.title
|
|
34
|
+
|
|
35
|
+
assert data["data"][1]["resources"]["total"] == len(resources_a)
|
|
36
|
+
assert data["data"][0]["resources"]["total"] == len(resources_b)
|
|
37
|
+
|
|
38
|
+
assert data["data"][1]["community_resources"]["total"] == 0
|
|
39
|
+
assert data["data"][0]["community_resources"]["total"] == 0
|
|
40
|
+
|
|
20
41
|
def test_get_dataset(self):
|
|
21
42
|
resources = [ResourceFactory() for _ in range(2)]
|
|
22
43
|
dataset = DatasetFactory(resources=resources)
|
|
@@ -3,6 +3,7 @@ from uuid import uuid4
|
|
|
3
3
|
|
|
4
4
|
import pytest
|
|
5
5
|
import requests
|
|
6
|
+
from bson import ObjectId
|
|
6
7
|
from flask import current_app
|
|
7
8
|
from mongoengine import ValidationError as MongoEngineValidationError
|
|
8
9
|
from mongoengine import post_save
|
|
@@ -325,6 +326,30 @@ class DatasetModelTest:
|
|
|
325
326
|
dataset.save()
|
|
326
327
|
assert dataset.private is True
|
|
327
328
|
|
|
329
|
+
def test_dataset_fetch_exclude_resource(self):
|
|
330
|
+
# Having a dataset with multiple resources
|
|
331
|
+
dataset_with_resources = DatasetFactory(nb_resources=5)
|
|
332
|
+
dataset_with_resources = (
|
|
333
|
+
Dataset.objects.filter(id=dataset_with_resources.id).exclude("resources").first()
|
|
334
|
+
)
|
|
335
|
+
assert dataset_with_resources is not None
|
|
336
|
+
assert dataset_with_resources.resources == []
|
|
337
|
+
|
|
338
|
+
assert dataset_with_resources.resources_len == 5
|
|
339
|
+
|
|
340
|
+
# Having dataset with resource field missing
|
|
341
|
+
dataset_insert_without_resources = Dataset._get_collection().insert_one({"_id": ObjectId()})
|
|
342
|
+
|
|
343
|
+
dataset_without_resources = (
|
|
344
|
+
Dataset.objects.filter(id=dataset_insert_without_resources.inserted_id)
|
|
345
|
+
.exclude("resources")
|
|
346
|
+
.first()
|
|
347
|
+
)
|
|
348
|
+
assert dataset_without_resources is not None
|
|
349
|
+
assert dataset_without_resources.resources == []
|
|
350
|
+
|
|
351
|
+
assert dataset_without_resources.resources_len == 0
|
|
352
|
+
|
|
328
353
|
|
|
329
354
|
class ResourceModelTest:
|
|
330
355
|
def test_url_is_required(self):
|
|
@@ -13,11 +13,11 @@ from udata.tests.helpers import capture_mails
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class UserTasksTest(APITestCase):
|
|
16
|
-
@pytest.mark.options(
|
|
16
|
+
@pytest.mark.options(YEARS_OF_INACTIVITY_BEFORE_DELETION=3)
|
|
17
17
|
def test_notify_inactive_users(self):
|
|
18
18
|
notification_comparison_date = (
|
|
19
19
|
datetime.utcnow()
|
|
20
|
-
- timedelta(days=current_app.config["
|
|
20
|
+
- timedelta(days=current_app.config["YEARS_OF_INACTIVITY_BEFORE_DELETION"] * 365)
|
|
21
21
|
+ timedelta(days=current_app.config["DAYS_BEFORE_ACCOUNT_INACTIVITY_NOTIFY_DELAY"])
|
|
22
22
|
- timedelta(days=1) # add margin
|
|
23
23
|
)
|
|
@@ -42,12 +42,12 @@ class UserTasksTest(APITestCase):
|
|
|
42
42
|
|
|
43
43
|
self.assertEqual(len(mails), 0)
|
|
44
44
|
|
|
45
|
-
@pytest.mark.options(
|
|
45
|
+
@pytest.mark.options(YEARS_OF_INACTIVITY_BEFORE_DELETION=3)
|
|
46
46
|
@pytest.mark.options(MAX_NUMBER_OF_USER_INACTIVITY_NOTIFICATIONS=10)
|
|
47
47
|
def test_notify_inactive_users_max_notifications(self):
|
|
48
48
|
notification_comparison_date = (
|
|
49
49
|
datetime.utcnow()
|
|
50
|
-
- timedelta(days=current_app.config["
|
|
50
|
+
- timedelta(days=current_app.config["YEARS_OF_INACTIVITY_BEFORE_DELETION"] * 365)
|
|
51
51
|
+ timedelta(days=current_app.config["DAYS_BEFORE_ACCOUNT_INACTIVITY_NOTIFY_DELAY"])
|
|
52
52
|
- timedelta(days=1) # add margin
|
|
53
53
|
)
|
|
@@ -75,11 +75,11 @@ class UserTasksTest(APITestCase):
|
|
|
75
75
|
NB_USERS_TO_NOTIFY - current_app.config["MAX_NUMBER_OF_USER_INACTIVITY_NOTIFICATIONS"],
|
|
76
76
|
)
|
|
77
77
|
|
|
78
|
-
@pytest.mark.options(
|
|
78
|
+
@pytest.mark.options(YEARS_OF_INACTIVITY_BEFORE_DELETION=3)
|
|
79
79
|
def test_delete_inactive_users(self):
|
|
80
80
|
deletion_comparison_date = (
|
|
81
81
|
datetime.utcnow()
|
|
82
|
-
- timedelta(days=current_app.config["
|
|
82
|
+
- timedelta(days=current_app.config["YEARS_OF_INACTIVITY_BEFORE_DELETION"] * 365)
|
|
83
83
|
- timedelta(days=1) # add margin
|
|
84
84
|
)
|
|
85
85
|
|
|
@@ -118,7 +118,7 @@ class UserTasksTest(APITestCase):
|
|
|
118
118
|
self.assertEqual(inactive_user_to_delete.fullname, "DELETED DELETED")
|
|
119
119
|
self.assertEqual(discussion.title, discussion_title)
|
|
120
120
|
|
|
121
|
-
@pytest.mark.options(
|
|
121
|
+
@pytest.mark.options(YEARS_OF_INACTIVITY_BEFORE_DELETION=3)
|
|
122
122
|
def test_keep_inactive_users_that_logged_in(self):
|
|
123
123
|
notification_comparison_date = (
|
|
124
124
|
datetime.utcnow()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: udata
|
|
3
|
-
Version: 10.1.
|
|
3
|
+
Version: 10.1.4
|
|
4
4
|
Summary: Open data portal
|
|
5
5
|
Home-page: https://github.com/opendatateam/udata
|
|
6
6
|
Author: Opendata Team
|
|
@@ -138,7 +138,15 @@ It is collectively taken care of by members of the
|
|
|
138
138
|
|
|
139
139
|
# Changelog
|
|
140
140
|
|
|
141
|
-
##
|
|
141
|
+
## 10.1.4 (2025-03-24)
|
|
142
|
+
|
|
143
|
+
- Improve datasets' API perfs (do not fetch resources from Mongo, add /api/2/datasets endpoint…) [#3279](https://github.com/opendatateam/udata/pull/3279) [#3291](https://github.com/opendatateam/udata/pull/3291)
|
|
144
|
+
- Fix harvesting literal contact points [#3288](https://github.com/opendatateam/udata/pull/3288)
|
|
145
|
+
- Use YEARS_OF_INACTIVITY_BEFORE_DELETION all around in code [#3287](https://github.com/opendatateam/udata/pull/3287)
|
|
146
|
+
- Add a udata catalog in dcat backends to test [#3289](https://github.com/opendatateam/udata/pull/3289)
|
|
147
|
+
- Add safeguards in the resource reorder endpoint [#3243](https://github.com/opendatateam/udata/pull/3243)
|
|
148
|
+
|
|
149
|
+
## 10.1.3 (2025-03-14)
|
|
142
150
|
|
|
143
151
|
- Add inactive users notification and deletion jobs [#3274](https://github.com/opendatateam/udata/pull/3274)
|
|
144
152
|
- these jobs can be scheduled daily for example
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
tasks/__init__.py,sha256=nubUI6ljumym4uv6NvAJEkWHtsdurFpEGSq-AxDWYDM,8153
|
|
2
2
|
tasks/helpers.py,sha256=70fS9tI_m0DTWmKx9Zl5-LG-nxdz_ZaPyvvsFkN2r48,1091
|
|
3
|
-
udata/__init__.py,sha256
|
|
3
|
+
udata/__init__.py,sha256=-ARuAJtBM9IPR0FqxllVxmAIwQ7Ua9vcT0tnHLRikrc,98
|
|
4
4
|
udata/api_fields.py,sha256=pgx0Ipa9R2sWZwTIBxMVvURwq9aEWAJR-dXdpb0qqHQ,30779
|
|
5
5
|
udata/app.py,sha256=xjk2D3EgboYBpTwBwdIxd2klt2yMoWMyCrkry5fz0LA,7292
|
|
6
6
|
udata/assets.py,sha256=H5Hrc2vnKM0IFLyWfLXmJ2Kj35w1i8W1D8Cgy8_cUj4,657
|
|
@@ -10,10 +10,10 @@ udata/errors.py,sha256=E8W7b4PH7c5B85g_nsUMt8fHqMVpDFOZFkO6wMPl6bA,117
|
|
|
10
10
|
udata/factories.py,sha256=MoklZnU8iwNL25dm3JsoXhoQs1PQWSVYL1WvcUBtJqM,492
|
|
11
11
|
udata/i18n.py,sha256=Q7UELAhKOW7DmUX8BjEMnqqhQxcR6d3ioSmj90A62cg,8992
|
|
12
12
|
udata/mail.py,sha256=FMGHcDAjHvk86iDUwBmVXpx3vbAb2c-j5C3BRnh9IYQ,2670
|
|
13
|
-
udata/rdf.py,sha256=
|
|
14
|
-
udata/routing.py,sha256=
|
|
13
|
+
udata/rdf.py,sha256=JmMxwq4fFBrBZQhJ6O9_nEeYUXspPzoZGTyGUD4Nyxs,18348
|
|
14
|
+
udata/routing.py,sha256=uPtBOA729unQ04MwLbZ6fZH_SWo2NzAefntz4koNyR8,7583
|
|
15
15
|
udata/sentry.py,sha256=ekcxqUSqxfM98TtvCsPaOoX5i2l6PEcYt7kb4l3od-Q,3223
|
|
16
|
-
udata/settings.py,sha256=
|
|
16
|
+
udata/settings.py,sha256=Bp0eeWRD1g4CAJyytHG7T8pTtdFYeb2GgoRxFLdI1W4,19124
|
|
17
17
|
udata/sitemap.py,sha256=oRRWoPI7ZsFFnUAOqGT1YuXFFKHBe8EcRnUCNHD7xjM,979
|
|
18
18
|
udata/tags.py,sha256=ydq4uokd6bzdeGVSpEXASVtGvDfO2LfQs9mptvvKJCM,631
|
|
19
19
|
udata/tasks.py,sha256=hLdmHV7ozeq803BRjU6X3DT3oVsZrV1beQILpbjsfQI,4978
|
|
@@ -93,9 +93,9 @@ udata/core/dataservices/tasks.py,sha256=d2tG1l6u8-eUKUYBOgnCsQLbLmLgJXU-DOzZWhhL
|
|
|
93
93
|
udata/core/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
94
|
udata/core/dataset/actions.py,sha256=mX6xox0PiMrbcAPZ3VZsI26rfM-ciYfEXxN6sqqImKA,1222
|
|
95
95
|
udata/core/dataset/activities.py,sha256=v8k1jwhdx62Z2ARZq8Q-x86OWSsBK99hRloPl74OCgA,1502
|
|
96
|
-
udata/core/dataset/api.py,sha256=
|
|
96
|
+
udata/core/dataset/api.py,sha256=mnOJsMcRLroKfHl3h8vvOMBrbu6KhbMU9p0cvoRDm6Y,30905
|
|
97
97
|
udata/core/dataset/api_fields.py,sha256=ObM2ubDowxJZGxsyC8nDiLP7XGeT8JQbLN4YqApzxy8,17529
|
|
98
|
-
udata/core/dataset/apiv2.py,sha256=
|
|
98
|
+
udata/core/dataset/apiv2.py,sha256=yPLJvAlt9NDj8cv8LrAtpmEPci2fqyOXq7MkbSRekKs,17896
|
|
99
99
|
udata/core/dataset/commands.py,sha256=__hPAk_6iHtgMnEG51ux0vbNWJHxUjXhi1ukH4hF5jY,3714
|
|
100
100
|
udata/core/dataset/constants.py,sha256=44uFvmL7xRF73Kag3rdaVli6CIP-3ZN8obhmsqHYJIM,2918
|
|
101
101
|
udata/core/dataset/csv.py,sha256=SYcIAamzwNECNQgm1LZlu-TaFOND4JdLRxeGCv1a1A0,3637
|
|
@@ -103,7 +103,7 @@ udata/core/dataset/events.py,sha256=bSM0nFEX14r4JHc-bAM-7OOuD3JAxUIpw9GgXbOsUyw,
|
|
|
103
103
|
udata/core/dataset/exceptions.py,sha256=uKiayLSpSzsnLvClObS6hOO0qXEqvURKN7_w8eimQNU,498
|
|
104
104
|
udata/core/dataset/factories.py,sha256=fRDWDlybR_ud4pDs1-ntWuYHKtV9LMHeBOBp2SmTT6M,9006
|
|
105
105
|
udata/core/dataset/forms.py,sha256=nGHC92MH3NmyfASuYRgoBzyNTpsWL_1h3R7B9t7nnxU,6295
|
|
106
|
-
udata/core/dataset/models.py,sha256=
|
|
106
|
+
udata/core/dataset/models.py,sha256=vaK2TTxoVKtJLUw595gDC_XfNaI7Ytq7vZfdd62wJ70,39545
|
|
107
107
|
udata/core/dataset/permissions.py,sha256=zXQ6kU-Ni3Pl5tDtat-ZPupug9InsNeCN7xRLc2Vcrc,1097
|
|
108
108
|
udata/core/dataset/preview.py,sha256=IwCqiNTjjXbtA_SSKF52pwnzKKEz0GyYM95QNn2Dkog,2561
|
|
109
109
|
udata/core/dataset/rdf.py,sha256=IB31pIbS9IW-VmZMsO-4GTrb43Hv-tgb_25WtWW3jyQ,30796
|
|
@@ -244,10 +244,10 @@ udata/core/user/constants.py,sha256=aTluhTR2RGZ_cdG7-mkEoT5Ndbg8BNUwwzCOld0aLMY,
|
|
|
244
244
|
udata/core/user/factories.py,sha256=kkwaojciLzfuAOeRnL1E7XCcGPo8waAal_G2eeuVc0k,825
|
|
245
245
|
udata/core/user/forms.py,sha256=yotqZozH9ViKuNI8SwdKocDEi7NXVs_XUMpdr_bIe5s,966
|
|
246
246
|
udata/core/user/metrics.py,sha256=ZuCxYHu-770IsO-KPMhh-ZDkl2hYSVCuHDRvp-H1NfA,1192
|
|
247
|
-
udata/core/user/models.py,sha256=
|
|
247
|
+
udata/core/user/models.py,sha256=cK6M5q-u78_2wuWpWGv4dZrG8LZxc64lW7Ced_CvRLA,10459
|
|
248
248
|
udata/core/user/permissions.py,sha256=Wbd8bLqSjqp9RHJ6ffLBj74L-LECcAhWazuw4Hq-2Gk,435
|
|
249
249
|
udata/core/user/rdf.py,sha256=F6SDX65ECtVOjDtHXI9WMmq33pN7HWb5ntOqe3LQsbQ,834
|
|
250
|
-
udata/core/user/tasks.py,sha256=
|
|
250
|
+
udata/core/user/tasks.py,sha256=VcK0zJq2it4CVmoAMIOgJ0c2IHCV6UBQPAB0qDABD88,3451
|
|
251
251
|
udata/core/user/tests/test_user_model.py,sha256=9tjtxvzUNpoT2SjLBxAS8hEDWlUBQwTcnv-c8Ws3rN8,2857
|
|
252
252
|
udata/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
253
253
|
udata/db/tasks.py,sha256=6PDnvvrE0lmQ3ss7sDLu8MUYHxUWW17NGgHCq9UnraY,151
|
|
@@ -299,7 +299,7 @@ udata/harvest/tests/factories.py,sha256=Jb_RwsYogWhquG8aj2bzT3JLySq3530OmZV9cofe
|
|
|
299
299
|
udata/harvest/tests/test_actions.py,sha256=lxwCfZIJB4-3hBVezH-lbK0xxn4m2_4UuwmKS4-e6T8,27143
|
|
300
300
|
udata/harvest/tests/test_api.py,sha256=pCIoBCWZYr1IKgGARMe5fZArTsTnFQXUy5ur11vs3ho,20363
|
|
301
301
|
udata/harvest/tests/test_base_backend.py,sha256=NeNp6yYOPfPpPNwO_uXWS_1gS0f0yClD1Cr2Fm90uoM,19183
|
|
302
|
-
udata/harvest/tests/test_dcat_backend.py,sha256=
|
|
302
|
+
udata/harvest/tests/test_dcat_backend.py,sha256=QSiA1YnWXToqh__AuYUEx3-fmtGKeGsixk1wV8yp8Dk,42758
|
|
303
303
|
udata/harvest/tests/test_filters.py,sha256=2nXGnLTlM0iSOZBDBxmJp1KO3_59RXLS0vmXvEs2-KE,2468
|
|
304
304
|
udata/harvest/tests/test_models.py,sha256=f9NRR2_S4oZFgF8qOumg0vv-lpnEBJbI5vNtcwFdSqM,831
|
|
305
305
|
udata/harvest/tests/test_notifications.py,sha256=MMzTzkv-GXMNFeOwAi31rdTsAXyLCLOSna41zOtaJG0,816
|
|
@@ -324,6 +324,7 @@ udata/harvest/tests/dcat/paged-collection-2.jsonld,sha256=YDn6-BVGuofbhJArGriUpL
|
|
|
324
324
|
udata/harvest/tests/dcat/partial-collection-1.jsonld,sha256=emPZGvpdaqgIVTgtmlWNm-zusKjADNe_NhNidCnT-7Y,7056
|
|
325
325
|
udata/harvest/tests/dcat/partial-collection-2.jsonld,sha256=zJ1ggcs2b4IJBDJ6zKJn8w5arjJBU_EHr6qFd8tu0I8,3691
|
|
326
326
|
udata/harvest/tests/dcat/sig.oreme.rdf,sha256=6F1P-hPyE8bZC-5uQTskTawRd19U0opIy9LCDwp0sd4,6315
|
|
327
|
+
udata/harvest/tests/dcat/udata.xml,sha256=co7tLKinEdPOwEScHUXSqSAKAFSgLElYOCI3uu50Sgo,14532
|
|
327
328
|
udata/linkchecker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
328
329
|
udata/linkchecker/backends.py,sha256=Xe_nWwjKsdMv7kgs3mbQDppVO4lqaJlboUxa_0nk1XM,1018
|
|
329
330
|
udata/linkchecker/checker.py,sha256=LB6WSMp5yvdmfdlq2ygp7uHoYEVsK0IPk6qnmhrS4GI,2903
|
|
@@ -434,8 +435,8 @@ udata/static/admin.css,sha256=gPM7oSehylBXQXyv0-gQ1LuyJiI1STQ_swM4CHjq_cs,185748
|
|
|
434
435
|
udata/static/admin.css.map,sha256=dzFd_AL3pQPFiww5oRwqnubDGJ9HNtYuAaiggLTjjB0,627543
|
|
435
436
|
udata/static/admin.js,sha256=iQnNCFKqwiSIMyJIeDBAD_gEwv8fABrzK5CoK3PZZME,1330409
|
|
436
437
|
udata/static/admin.js.map,sha256=09cK62bu_h0M4ajLf-Y2-sQCUFYPWKRw1PCQWQvfQyM,8518351
|
|
437
|
-
udata/static/common.js,sha256=
|
|
438
|
-
udata/static/common.js.map,sha256=
|
|
438
|
+
udata/static/common.js,sha256=2O7tWizeQIFPVuVQQw11DY92mIZXk2ko31cYQmOYeXg,2252
|
|
439
|
+
udata/static/common.js.map,sha256=4PqyAgSBVL6w9V-F-h4hmcXZkLpCzFx9oHcwQEpgvEA,14137
|
|
439
440
|
udata/static/fontawesome-webfont.eot,sha256=e_yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk,165742
|
|
440
441
|
udata/static/fontawesome-webfont.svg,sha256=rWFXkmwWIrpOHQPUePFUE2hSS_xG9R5C_g2UX37zI-Q,444379
|
|
441
442
|
udata/static/fontawesome-webfont.ttf,sha256=qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg,165548
|
|
@@ -454,24 +455,24 @@ udata/static/chunks/1.0a96f54313c89e541ccb.js,sha256=A-lYXUeTLFOd_al9J_EpYMsbJZR
|
|
|
454
455
|
udata/static/chunks/1.0a96f54313c89e541ccb.js.map,sha256=Z4uWu-Bwj4JnQ49hqzkbRrfbtRUm65X93JQyDV6aLTM,1741737
|
|
455
456
|
udata/static/chunks/10.471164b2a9fe15614797.js,sha256=sZ7HhLG8c-gdmtSlZHmjt7-vtu0AIGy89qZmAduSEyM,414740
|
|
456
457
|
udata/static/chunks/10.471164b2a9fe15614797.js.map,sha256=qmVKIeXYE9_GW-vnDrt0oj0KbUXURInBUvc9i6mZRuo,2736059
|
|
457
|
-
udata/static/chunks/11.
|
|
458
|
-
udata/static/chunks/11.
|
|
458
|
+
udata/static/chunks/11.55ab79044cda0271b595.js,sha256=EhKlFZhIYlOskB0jnGHC1VKWD5oA_hlFaVc14eUMwvY,395562
|
|
459
|
+
udata/static/chunks/11.55ab79044cda0271b595.js.map,sha256=EgvtUo2aG6sNDoZ0es4d6f5Vv78NIOutK-EhUuf7r3k,2268951
|
|
459
460
|
udata/static/chunks/12.1be61e0201691821bff6.js,sha256=oveRcMtBsi97LUeAX86LjSAEVIpNxfWGHVovetKfPTw,421097
|
|
460
461
|
udata/static/chunks/12.1be61e0201691821bff6.js.map,sha256=ikkgGwMdOXW4ZXyucmqrxLqJQHIcXJJoMMNt01QFrZM,2442221
|
|
461
|
-
udata/static/chunks/13.
|
|
462
|
-
udata/static/chunks/13.
|
|
462
|
+
udata/static/chunks/13.2d06442dd9a05d9777b5.js,sha256=p0DaqvjBIQCU1WkdfskEOZPb5Z9PpUsib8EqTx4iA5w,420590
|
|
463
|
+
udata/static/chunks/13.2d06442dd9a05d9777b5.js.map,sha256=IcMWoAT9iK-5WSBWXHHpiw7U-21r5K63vZ7Cj5SkMEU,2430624
|
|
463
464
|
udata/static/chunks/14.bc3f6bc0a67517e7b30f.js,sha256=SLlPbF5r7gOcZKPibWUh5BmsKF1jN8FwOUbiZ8i76EU,290368
|
|
464
465
|
udata/static/chunks/14.bc3f6bc0a67517e7b30f.js.map,sha256=3Lg42qlM8-ho4unygukS9WvltNoIDJkMuTP7erZmYEI,1636918
|
|
465
466
|
udata/static/chunks/15.2f5d8e3d4aa4c46188d7.js,sha256=gcYH_y6xCl3LbMKg_epxR5IntnEk7X119Evs9up1i7Q,138967
|
|
466
467
|
udata/static/chunks/15.2f5d8e3d4aa4c46188d7.js.map,sha256=RPoT4EwQaWz3-puzfSV9kx511PK7RYPmveQFImM2BgA,702620
|
|
467
468
|
udata/static/chunks/16.aaa39ef2d7e82594efc8.js,sha256=1J9T7hgzq1culb_vcXcRvMwt59pJx5Yv-oTU8mUoQDs,228559
|
|
468
469
|
udata/static/chunks/16.aaa39ef2d7e82594efc8.js.map,sha256=Oc67ghT4gTY2r8H_cfy3tS6o-WyjvXkVc4xXqq0yBcQ,1574395
|
|
469
|
-
udata/static/chunks/17.
|
|
470
|
-
udata/static/chunks/17.
|
|
470
|
+
udata/static/chunks/17.e8e4caaad5cb0cc0bacc.js,sha256=cLZ0lVide63WZtCnnvPsFeptXcONCL4zUj2IqJEiayQ,236702
|
|
471
|
+
udata/static/chunks/17.e8e4caaad5cb0cc0bacc.js.map,sha256=yqRNQCYLIt7dpCJf_E7kLPiCnsFA20KIBkIBcZjJqUg,1289996
|
|
471
472
|
udata/static/chunks/18.56444ebd2456a4ba2201.js,sha256=o78S_10_0k6kL0HbpDlbKZ5tZ-DCe6Y9XBex-SFS_s4,50384
|
|
472
473
|
udata/static/chunks/18.56444ebd2456a4ba2201.js.map,sha256=Xdv5UJ1TG-LZIlUjZm-yv59KA1omSq2dr8Ukfec46UE,277805
|
|
473
|
-
udata/static/chunks/19.
|
|
474
|
-
udata/static/chunks/19.
|
|
474
|
+
udata/static/chunks/19.f03a102365af4315f9db.js,sha256=AoAGY4OVQWkRqV6zhrmmRVIRBbVehJPBjcPN0g7avtA,203418
|
|
475
|
+
udata/static/chunks/19.f03a102365af4315f9db.js.map,sha256=a9cN0YUEECSmeeY9Svl1tb0tzatGEUm6lRcPUkqiX6U,1079969
|
|
475
476
|
udata/static/chunks/2.c67aa76cc078c193aed5.js,sha256=BjpQndwBdg9AT2lrY1TAgMfPbMvRytp33yI9YOgCOqc,276597
|
|
476
477
|
udata/static/chunks/2.c67aa76cc078c193aed5.js.map,sha256=FnPh12lCwilnq1jRp-d7226H5kpaA4-raWEk1Q0p42M,1556097
|
|
477
478
|
udata/static/chunks/20.3d4e02d1205a3c9e26c5.js,sha256=hRFQGBcks3lD-R4mNcNelqbr9kjz8jTtPee1lDWAVhY,36764
|
|
@@ -502,14 +503,14 @@ udata/static/chunks/33.011b367beb543774f950.js,sha256=pmgOHx33dbnHDnDISHjapoRmU-
|
|
|
502
503
|
udata/static/chunks/33.011b367beb543774f950.js.map,sha256=CzKVWHelXpz3DRimAGbVczh5X9Etru6qo1E_jhSZTBY,708099
|
|
503
504
|
udata/static/chunks/4.98dca3045c034c154d5f.js,sha256=HhytpLza7w6v9X_4g8xc96jdfryjT5_T1pzGMXf5owE,606930
|
|
504
505
|
udata/static/chunks/4.98dca3045c034c154d5f.js.map,sha256=QJ6SzTm_r0jThhBkZ4EtYQREZhIt_MX17XhTse06xYo,3714040
|
|
505
|
-
udata/static/chunks/5.
|
|
506
|
-
udata/static/chunks/5.
|
|
507
|
-
udata/static/chunks/6.
|
|
508
|
-
udata/static/chunks/6.
|
|
506
|
+
udata/static/chunks/5.5660483641193b7f8295.js,sha256=Rt1datinpQ-Y89qO619AEnp2F9ieNDZhkIOIO93GDss,579464
|
|
507
|
+
udata/static/chunks/5.5660483641193b7f8295.js.map,sha256=QxmtdRLzyHodioNblS3xyMgjYyfe10ngg7MhY5mnR6g,3587779
|
|
508
|
+
udata/static/chunks/6.30dce49d17db07600b06.js,sha256=DjuMZadZp-1CqO_9kg6XaveXzKdQ6aKE-8AFZNMtP4Q,609837
|
|
509
|
+
udata/static/chunks/6.30dce49d17db07600b06.js.map,sha256=8fjOv9NLhqxxyFwPY4ytdiV7DY_vRkFf45CVHFC6znM,3783190
|
|
509
510
|
udata/static/chunks/7.896bbffe39433bb598f7.js,sha256=C1NrGe6wrptQFYCCmITtx12dGqfaO7136-9BD6m05Ts,157150
|
|
510
511
|
udata/static/chunks/7.896bbffe39433bb598f7.js.map,sha256=aZB8qYRkX4oqSugjG69tMlv64YIW5LPXF_8uACMHMTw,813014
|
|
511
|
-
udata/static/chunks/8.
|
|
512
|
-
udata/static/chunks/8.
|
|
512
|
+
udata/static/chunks/8.b58fcd977fcaf3415571.js,sha256=M3EQo61jPJCl5s8FJQvv45pRG54K5t32jfz13Gz9X9I,222856
|
|
513
|
+
udata/static/chunks/8.b58fcd977fcaf3415571.js.map,sha256=Yb3TrPSUFpyTWiECI_P3Sp2mxWNbld0sO_QoOkVYbm4,1205076
|
|
513
514
|
udata/static/chunks/9.07515e5187f475bce828.js,sha256=mJ8H3nJBaPXY1-hxWPdOD8-hQwP3k6prsfPwf_5wuas,416716
|
|
514
515
|
udata/static/chunks/9.07515e5187f475bce828.js.map,sha256=7cfRtXVGvJwrNXWVE8xaLjvQQoy9xgR6fIOmlPDJSDA,2746303
|
|
515
516
|
udata/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -525,8 +526,8 @@ udata/templates/macros/forms.html,sha256=Zn8G_pRC9F7HFoA7sXh_P2xFbsXOTBRPbRO-PUY
|
|
|
525
526
|
udata/templates/macros/metadata.html,sha256=KAKOYUvf50GpM1hm1O-HoV-1bhjW7aLqJdflDlNyf0U,3575
|
|
526
527
|
udata/templates/mail/account_deleted.html,sha256=7INK4GqaOyqe36pXiT4xU_cAZLuNxOeY3zoy4Yjz1R4,146
|
|
527
528
|
udata/templates/mail/account_deleted.txt,sha256=4EmPnt4QWMWSUkfTaMUga4BCFjGlZGKTgh9JDUzKjDk,110
|
|
528
|
-
udata/templates/mail/account_inactivity.html,sha256=
|
|
529
|
-
udata/templates/mail/account_inactivity.txt,sha256=
|
|
529
|
+
udata/templates/mail/account_inactivity.html,sha256=L2R8LQY5ijPyZslUU_1L_WP3IQ7hFn0tXOMfyrXnQL8,824
|
|
530
|
+
udata/templates/mail/account_inactivity.txt,sha256=tW49q0azOCG_zm_vQUTfjkqukXBLkkDqMOp_tlQWwfA,578
|
|
530
531
|
udata/templates/mail/badge_added_association.html,sha256=xaF9tY20MbcVY_97tLK1l0OQe33bYVMdjXFPBZ7uhnc,860
|
|
531
532
|
udata/templates/mail/badge_added_association.txt,sha256=o9ZIP6OB8Sf4sHjUY615ezU5WU6SVJqNkivdSgWViw4,301
|
|
532
533
|
udata/templates/mail/badge_added_certified.html,sha256=6THD3JB7Qq-mFrb4pHTzLw7o1GiWQdpsyEr3QRtcu0g,841
|
|
@@ -620,7 +621,7 @@ udata/tests/api/test_auth_api.py,sha256=OMRlY0OQt60j5N4A-N3HdWTuffOjRlFHkz5a3jJF
|
|
|
620
621
|
udata/tests/api/test_base_api.py,sha256=2w_vz0eEuq3P3aN-ByvxGc3VZAo7XtgatFfcrzf2uEU,2244
|
|
621
622
|
udata/tests/api/test_contact_points.py,sha256=X_RWD_xCfR8WchhHfKEt5mxMHY77OmTyguNKCsZftdE,5337
|
|
622
623
|
udata/tests/api/test_dataservices_api.py,sha256=DAOMW1nkETWz2r3JoQ9bN8n-V72HJFr4HFmrdPvQLHo,24125
|
|
623
|
-
udata/tests/api/test_datasets_api.py,sha256=
|
|
624
|
+
udata/tests/api/test_datasets_api.py,sha256=RjNwOj-TiD0SaXSmIttLLJLhyBbdoucfImqTA4tBnr8,90174
|
|
624
625
|
udata/tests/api/test_fields.py,sha256=OW85Z5MES5HeWOpapeem8OvR1cIcrqW-xMWpdZO4LZ8,1033
|
|
625
626
|
udata/tests/api/test_follow_api.py,sha256=fccgVNfcqET221PPS3p7qzb9hpvbBBUGhV-l4UeOpyk,3352
|
|
626
627
|
udata/tests/api/test_me_api.py,sha256=YPd8zmR3zwJKtpSqz8nY1nOOMyXs66INeBwyhg5D0Us,13846
|
|
@@ -633,7 +634,7 @@ udata/tests/api/test_topics_api.py,sha256=L2zisaASayFca3Vu0Y3GKMSwmZH1aosklK2TXu
|
|
|
633
634
|
udata/tests/api/test_transfer_api.py,sha256=-OLv-KjyLZL14J8UHl-ak_sYUj6wFiZWyoXC2SMXmEQ,7503
|
|
634
635
|
udata/tests/api/test_user_api.py,sha256=hfDHOv5F81tehbc5u3dYH5rAyYgzgHGCWVcGR3kLIZw,16591
|
|
635
636
|
udata/tests/apiv2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
636
|
-
udata/tests/apiv2/test_datasets.py,sha256=
|
|
637
|
+
udata/tests/apiv2/test_datasets.py,sha256=3M4pEvxQS1bCzP4Cje-Sj-1QpkR8q3EQnJDD4w15Dpk,21668
|
|
637
638
|
udata/tests/apiv2/test_me_api.py,sha256=RAgu5iKGB3Pp8cDN-427ovly-VOz5MTL4GpPZ1NcVXI,1418
|
|
638
639
|
udata/tests/apiv2/test_organizations.py,sha256=os_43s-coSRqjgY-5fAjSiRlB3g2685u7d-Es0aOhks,6390
|
|
639
640
|
udata/tests/apiv2/test_swagger.py,sha256=RKedaq-2UeyEuxlmUaAN7pmEe-lQYYmpDUVc8HF3CH4,785
|
|
@@ -651,7 +652,7 @@ udata/tests/dataset/test_csv_adapter.py,sha256=CSAHEur5-183fRsD_cBgsHnLuohn0DOb9
|
|
|
651
652
|
udata/tests/dataset/test_dataset_actions.py,sha256=bgDjVYjOvu3sX_FCTCzf2snZYSprsqor2nAhIVuokSs,722
|
|
652
653
|
udata/tests/dataset/test_dataset_commands.py,sha256=zMPJG2wYwKBee2zI65kmboxf59Zqa84DDjT8V5wj9uo,801
|
|
653
654
|
udata/tests/dataset/test_dataset_events.py,sha256=hlrpoOiBbnX_COUI9Pzdqlp45GZZDqu5piwupbnPiTI,3601
|
|
654
|
-
udata/tests/dataset/test_dataset_model.py,sha256=
|
|
655
|
+
udata/tests/dataset/test_dataset_model.py,sha256=uz2oNuzL6tEqd34JrBP0J1BVlt8JQoAB_u3tYM9etPg,32407
|
|
655
656
|
udata/tests/dataset/test_dataset_rdf.py,sha256=1eBbn7rl2bcHGaJoxXMnJpszteShXvVg3djEw6HxOUw,40721
|
|
656
657
|
udata/tests/dataset/test_dataset_tasks.py,sha256=n1W2Pg0ez02d66zQG3N93kh7dpR2yLMRDqUI6PnPaI0,3088
|
|
657
658
|
udata/tests/dataset/test_resource_preview.py,sha256=fp9mSL7unhyM66GR0gwhgX3OGQ4TJt7G9xU-CjsL3HI,3908
|
|
@@ -698,7 +699,7 @@ udata/tests/site/test_site_model.py,sha256=zpRg5jrFPUwhGsljlO5lpCrhJLHiHYoNl28AO
|
|
|
698
699
|
udata/tests/site/test_site_rdf.py,sha256=zlw7leYc7azfrC6JwDjKiy3wixQzTpo-lDOm-Dg_kXw,13092
|
|
699
700
|
udata/tests/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
700
701
|
udata/tests/user/test_user_rdf.py,sha256=BRdv9ivLLUQoImFOuIohDoZAQXMXCruaNJ37siKul5o,1771
|
|
701
|
-
udata/tests/user/test_user_tasks.py,sha256=
|
|
702
|
+
udata/tests/user/test_user_tasks.py,sha256=n7pMKRjkP7mtf-3nK9jaPC0VjM7EGJuxxPBkIXiJXgI,5573
|
|
702
703
|
udata/tests/workers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
703
704
|
udata/tests/workers/test_jobs_commands.py,sha256=TAfJUUPBSkwtFHZpIa6k9n-o_SUni7q4bQsiuXXuqGY,5463
|
|
704
705
|
udata/tests/workers/test_tasks_routing.py,sha256=m7Zu9X7GW3oKkSDcHM-dC20Vba3Fruui44bMBVU1dcc,2228
|
|
@@ -719,9 +720,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=QQ66ZrgCYUIGeWFuAJApsxg3HZA_mE
|
|
|
719
720
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=77zeFKPGBQ6Rm9EPlOvdEM4xvNfW73nnkMvL6IJhx3M,46287
|
|
720
721
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=2oLruBkM95m7L9ynig7a74UO-FV9wpZLji9HJ70G2MU,29169
|
|
721
722
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=xH_QQlYBJMfB2Y0KPuGpca3jtxhB6xJ3WkDIQ8utbUc,53262
|
|
722
|
-
udata-10.1.
|
|
723
|
-
udata-10.1.
|
|
724
|
-
udata-10.1.
|
|
725
|
-
udata-10.1.
|
|
726
|
-
udata-10.1.
|
|
727
|
-
udata-10.1.
|
|
723
|
+
udata-10.1.4.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
724
|
+
udata-10.1.4.dist-info/METADATA,sha256=2Z4s20alQJtjolP8jDQA-EYtAx6ZtpIcRf8W1Dey640,142955
|
|
725
|
+
udata-10.1.4.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
|
|
726
|
+
udata-10.1.4.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
|
|
727
|
+
udata-10.1.4.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
|
|
728
|
+
udata-10.1.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|