udata 10.6.1.dev36110__py2.py3-none-any.whl → 10.6.1.dev36176__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 +1 -3
- udata/core/dataset/models.py +11 -6
- udata/core/dataset/preview.py +19 -72
- udata/core/organization/api.py +14 -0
- udata/settings.py +3 -0
- udata/static/chunks/{11.8a2f7828175824bcd74b.js → 11.51d706fb9521c16976bc.js} +3 -3
- udata/static/chunks/{11.8a2f7828175824bcd74b.js.map → 11.51d706fb9521c16976bc.js.map} +1 -1
- udata/static/chunks/{19.df16abde17a42033a7f8.js → 19.a348a5fff8fe2801e52a.js} +3 -3
- udata/static/chunks/{19.df16abde17a42033a7f8.js.map → 19.a348a5fff8fe2801e52a.js.map} +1 -1
- udata/static/chunks/{5.5660483641193b7f8295.js → 5.343ca020a2d38cec1a14.js} +3 -3
- udata/static/chunks/{5.5660483641193b7f8295.js.map → 5.343ca020a2d38cec1a14.js.map} +1 -1
- udata/static/chunks/{6.30dce49d17db07600b06.js → 6.a3b07de9dd2ca2d24e85.js} +3 -3
- udata/static/chunks/{6.30dce49d17db07600b06.js.map → 6.a3b07de9dd2ca2d24e85.js.map} +1 -1
- udata/static/chunks/{8.54e44b102164ae5e7a67.js → 8.462bb3029de008497675.js} +2 -2
- udata/static/chunks/{8.54e44b102164ae5e7a67.js.map → 8.462bb3029de008497675.js.map} +1 -1
- udata/static/common.js +1 -1
- udata/static/common.js.map +1 -1
- udata/tests/api/test_dataservices_api.py +8 -8
- udata/tests/api/test_datasets_api.py +18 -8
- udata/tests/api/test_organizations_api.py +23 -1
- udata/tests/api/test_reuses_api.py +12 -8
- udata/tests/dataset/test_resource_preview.py +47 -98
- {udata-10.6.1.dev36110.dist-info → udata-10.6.1.dev36176.dist-info}/METADATA +5 -1
- {udata-10.6.1.dev36110.dist-info → udata-10.6.1.dev36176.dist-info}/RECORD +28 -28
- {udata-10.6.1.dev36110.dist-info → udata-10.6.1.dev36176.dist-info}/LICENSE +0 -0
- {udata-10.6.1.dev36110.dist-info → udata-10.6.1.dev36176.dist-info}/WHEEL +0 -0
- {udata-10.6.1.dev36110.dist-info → udata-10.6.1.dev36176.dist-info}/entry_points.txt +0 -0
- {udata-10.6.1.dev36110.dist-info → udata-10.6.1.dev36176.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,d){for(var t,b,_=0,n=[];_<f.length;_++)b=f[_],r[b]&&n.push.apply(n,r[b]),r[b]=0;for(t in d){var i=d[t];switch(typeof i){case"object":e[t]=function(c){var a=c.slice(1),r=c[0];return function(c,f,d){e[r].apply(this,[c,f,d].concat(a))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(c&&c(f,d);n.length;)n.shift().call(null,__webpack_require__);if(d[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:"343ca020a2d38cec1a14",6:"a3b07de9dd2ca2d24e85",7:"896bbffe39433bb598f7",8:"462bb3029de008497675",9:"033d7e190ca9e226a5d0",10:"8ca60413647062717b1e",11:"51d706fb9521c16976bc",12:"1be61e0201691821bff6",13:"39e106d56f794ebd06a0",14:"bc3f6bc0a67517e7b30f",15:"2f5d8e3d4aa4c46188d7",16:"aaa39ef2d7e82594efc8",17:"70cbb4a91b002338007e",18:"56444ebd2456a4ba2201",19:"a348a5fff8fe2801e52a",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 02b371f3b7c1f7cc251e"],"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\":\"54e44b102164ae5e7a67\",\"9\":\"033d7e190ca9e226a5d0\",\"10\":\"8ca60413647062717b1e\",\"11\":\"8a2f7828175824bcd74b\",\"12\":\"1be61e0201691821bff6\",\"13\":\"39e106d56f794ebd06a0\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"70cbb4a91b002338007e\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"df16abde17a42033a7f8\",\"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\":\"54e44b102164ae5e7a67\",\"9\":\"033d7e190ca9e226a5d0\",\"10\":\"8ca60413647062717b1e\",\"11\":\"8a2f7828175824bcd74b\",\"12\":\"1be61e0201691821bff6\",\"13\":\"39e106d56f794ebd06a0\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"70cbb4a91b002338007e\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"df16abde17a42033a7f8\",\"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 02b371f3b7c1f7cc251e\n **/"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap 3bb9132a729303a06045"],"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\":\"343ca020a2d38cec1a14\",\"6\":\"a3b07de9dd2ca2d24e85\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"462bb3029de008497675\",\"9\":\"033d7e190ca9e226a5d0\",\"10\":\"8ca60413647062717b1e\",\"11\":\"51d706fb9521c16976bc\",\"12\":\"1be61e0201691821bff6\",\"13\":\"39e106d56f794ebd06a0\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"70cbb4a91b002338007e\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"a348a5fff8fe2801e52a\",\"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\":\"343ca020a2d38cec1a14\",\"6\":\"a3b07de9dd2ca2d24e85\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"462bb3029de008497675\",\"9\":\"033d7e190ca9e226a5d0\",\"10\":\"8ca60413647062717b1e\",\"11\":\"51d706fb9521c16976bc\",\"12\":\"1be61e0201691821bff6\",\"13\":\"39e106d56f794ebd06a0\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"70cbb4a91b002338007e\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"a348a5fff8fe2801e52a\",\"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 3bb9132a729303a06045\n **/"],"sourceRoot":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from datetime import datetime
|
|
1
|
+
from datetime import datetime, timedelta
|
|
2
2
|
from xml.etree.ElementTree import XML
|
|
3
3
|
|
|
4
4
|
import feedparser
|
|
@@ -710,19 +710,19 @@ class DataserviceRdfViewsTest:
|
|
|
710
710
|
|
|
711
711
|
class DataservicesFeedAPItest(APITestCase):
|
|
712
712
|
def test_recent_feed(self):
|
|
713
|
-
|
|
713
|
+
DataserviceFactory(title="A", created_at=datetime.utcnow())
|
|
714
|
+
DataserviceFactory(title="B", created_at=datetime.utcnow() - timedelta(days=2))
|
|
715
|
+
DataserviceFactory(title="C", created_at=datetime.utcnow() - timedelta(days=1))
|
|
714
716
|
|
|
715
717
|
response = self.get(url_for("api.recent_dataservices_atom_feed"))
|
|
716
|
-
|
|
717
718
|
self.assert200(response)
|
|
718
719
|
|
|
719
720
|
feed = feedparser.parse(response.data)
|
|
720
721
|
|
|
721
|
-
self.assertEqual(len(feed.entries),
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
self.assertGreaterEqual(prev_published_date, published_date)
|
|
722
|
+
self.assertEqual(len(feed.entries), 3)
|
|
723
|
+
self.assertEqual(feed.entries[0].title, "A")
|
|
724
|
+
self.assertEqual(feed.entries[1].title, "C")
|
|
725
|
+
self.assertEqual(feed.entries[2].title, "B")
|
|
726
726
|
|
|
727
727
|
def test_recent_feed_owner(self):
|
|
728
728
|
owner = UserFactory()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import json
|
|
2
|
-
from datetime import datetime
|
|
2
|
+
from datetime import datetime, timedelta
|
|
3
3
|
from io import BytesIO
|
|
4
4
|
from uuid import uuid4
|
|
5
5
|
|
|
@@ -1275,19 +1275,29 @@ class DatasetAPITest(APITestCase):
|
|
|
1275
1275
|
|
|
1276
1276
|
class DatasetsFeedAPItest(APITestCase):
|
|
1277
1277
|
def test_recent_feed(self):
|
|
1278
|
-
|
|
1278
|
+
DatasetFactory(
|
|
1279
|
+
title="A", resources=[ResourceFactory()], created_at_internal=datetime.utcnow()
|
|
1280
|
+
)
|
|
1281
|
+
DatasetFactory(
|
|
1282
|
+
title="B",
|
|
1283
|
+
resources=[ResourceFactory()],
|
|
1284
|
+
created_at_internal=datetime.utcnow() - timedelta(days=2),
|
|
1285
|
+
)
|
|
1286
|
+
DatasetFactory(
|
|
1287
|
+
title="C",
|
|
1288
|
+
resources=[ResourceFactory()],
|
|
1289
|
+
created_at_internal=datetime.utcnow() - timedelta(days=1),
|
|
1290
|
+
)
|
|
1279
1291
|
|
|
1280
1292
|
response = self.get(url_for("api.recent_datasets_atom_feed"))
|
|
1281
|
-
|
|
1282
1293
|
self.assert200(response)
|
|
1283
1294
|
|
|
1284
1295
|
feed = feedparser.parse(response.data)
|
|
1285
1296
|
|
|
1286
|
-
self.assertEqual(len(feed.entries),
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
self.assertGreaterEqual(prev_published_date, published_date)
|
|
1297
|
+
self.assertEqual(len(feed.entries), 3)
|
|
1298
|
+
self.assertEqual(feed.entries[0].title, "A")
|
|
1299
|
+
self.assertEqual(feed.entries[1].title, "C")
|
|
1300
|
+
self.assertEqual(feed.entries[2].title, "B")
|
|
1291
1301
|
|
|
1292
1302
|
def test_recent_feed_owner(self):
|
|
1293
1303
|
owner = UserFactory()
|
|
@@ -49,10 +49,11 @@ class OrganizationAPITest:
|
|
|
49
49
|
|
|
50
50
|
def test_organization_api_list_with_filters(self, api):
|
|
51
51
|
"""It should filter the organization list"""
|
|
52
|
-
|
|
52
|
+
org = OrganizationFactory(business_number_id="13002526500013")
|
|
53
53
|
org_public_service = OrganizationFactory()
|
|
54
54
|
org_public_service.add_badge(org_constants.PUBLIC_SERVICE)
|
|
55
55
|
|
|
56
|
+
#### Badges ####
|
|
56
57
|
response = api.get(url_for("api.organizations", badge=org_constants.PUBLIC_SERVICE))
|
|
57
58
|
assert200(response)
|
|
58
59
|
assert len(response.json["data"]) == 1
|
|
@@ -61,6 +62,27 @@ class OrganizationAPITest:
|
|
|
61
62
|
response = api.get(url_for("api.organizations", badge="bad-badge"))
|
|
62
63
|
assert400(response)
|
|
63
64
|
|
|
65
|
+
#### Name ####
|
|
66
|
+
response = api.get(url_for("api.organizations", name=org.name))
|
|
67
|
+
assert200(response)
|
|
68
|
+
assert len(response.json["data"]) == 1
|
|
69
|
+
assert response.json["data"][0]["id"] == str(org.id)
|
|
70
|
+
|
|
71
|
+
response = api.get(url_for("api.organizations", name="Some other name"))
|
|
72
|
+
assert200(response)
|
|
73
|
+
assert len(response.json["data"]) == 0
|
|
74
|
+
|
|
75
|
+
#### SIRET ####
|
|
76
|
+
response = api.get(url_for("api.organizations", business_number_id=org.business_number_id))
|
|
77
|
+
assert200(response)
|
|
78
|
+
print(response.json["data"])
|
|
79
|
+
assert len(response.json["data"]) == 1
|
|
80
|
+
assert response.json["data"][0]["id"] == str(org.id)
|
|
81
|
+
|
|
82
|
+
response = api.get(url_for("api.organizations", business_number_id="xxx"))
|
|
83
|
+
assert200(response)
|
|
84
|
+
assert len(response.json["data"]) == 0
|
|
85
|
+
|
|
64
86
|
def test_organization_role_api_get(self, api):
|
|
65
87
|
"""It should fetch an organization's roles list from the API"""
|
|
66
88
|
response = api.get(url_for("api.org_roles"))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from datetime import datetime
|
|
1
|
+
from datetime import datetime, timedelta
|
|
2
2
|
|
|
3
3
|
import feedparser
|
|
4
4
|
import pytest
|
|
@@ -573,19 +573,23 @@ class ReuseAPITest:
|
|
|
573
573
|
|
|
574
574
|
class ReusesFeedAPItest(APITestCase):
|
|
575
575
|
def test_recent_feed(self):
|
|
576
|
-
|
|
576
|
+
ReuseFactory(title="A", datasets=[DatasetFactory()], created_at=datetime.utcnow())
|
|
577
|
+
ReuseFactory(
|
|
578
|
+
title="B", datasets=[DatasetFactory()], created_at=datetime.utcnow() - timedelta(days=2)
|
|
579
|
+
)
|
|
580
|
+
ReuseFactory(
|
|
581
|
+
title="C", datasets=[DatasetFactory()], created_at=datetime.utcnow() - timedelta(days=1)
|
|
582
|
+
)
|
|
577
583
|
|
|
578
584
|
response = self.get(url_for("api.recent_reuses_atom_feed"))
|
|
579
|
-
|
|
580
585
|
self.assert200(response)
|
|
581
586
|
|
|
582
587
|
feed = feedparser.parse(response.data)
|
|
583
588
|
|
|
584
|
-
self.assertEqual(len(feed.entries),
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
self.assertGreaterEqual(prev_published_date, published_date)
|
|
589
|
+
self.assertEqual(len(feed.entries), 3)
|
|
590
|
+
self.assertEqual(feed.entries[0].title, "A")
|
|
591
|
+
self.assertEqual(feed.entries[1].title, "C")
|
|
592
|
+
self.assertEqual(feed.entries[2].title, "B")
|
|
589
593
|
|
|
590
594
|
def test_recent_feed_owner(self):
|
|
591
595
|
owner = UserFactory()
|
|
@@ -1,120 +1,69 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
-
from udata.core.dataset.factories import
|
|
4
|
-
from udata.core.dataset.preview import PreviewPlugin, PreviewWarning
|
|
3
|
+
from udata.core.dataset.factories import ResourceFactory
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
DUMMY_EXTRAS = {
|
|
6
|
+
"analysis:parsing:finished_at": "1987-12-23T10:55:00.000000+00:00",
|
|
7
|
+
"analysis:parsing:parsing_table": "xxx",
|
|
8
|
+
}
|
|
9
|
+
MAX_SIZE = 50000
|
|
7
10
|
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
pytestmark = [
|
|
12
|
+
pytest.mark.usefixtures("clean_db"),
|
|
13
|
+
pytest.mark.options(PLUGINS=["tabular"]),
|
|
14
|
+
pytest.mark.frontend,
|
|
15
|
+
]
|
|
10
16
|
|
|
11
17
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return True
|
|
18
|
+
def expected_url(rid):
|
|
19
|
+
return "http://preview.me/resources/{0}".format(rid)
|
|
15
20
|
|
|
16
|
-
def preview_url(self, resource):
|
|
17
|
-
return PREVIEW_URL
|
|
18
21
|
|
|
22
|
+
@pytest.mark.options(TABULAR_EXPLORE_URL="http://preview.me")
|
|
23
|
+
def test_display_preview_for_tabular_resources():
|
|
24
|
+
resource = ResourceFactory(extras=DUMMY_EXTRAS)
|
|
25
|
+
assert resource.preview_url == expected_url(resource.id)
|
|
19
26
|
|
|
20
|
-
class NeverPreview(PreviewPlugin):
|
|
21
|
-
def can_preview(self, resource):
|
|
22
|
-
return False
|
|
23
27
|
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
@pytest.mark.options(TABULAR_EXPLORE_URL=None)
|
|
29
|
+
def test_no_preview_if_no_conf():
|
|
30
|
+
assert ResourceFactory(extras=DUMMY_EXTRAS).preview_url is None
|
|
26
31
|
|
|
27
32
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
@pytest.mark.options(TABULAR_EXPLORE_URL="http://preview.me")
|
|
34
|
+
def test_default_allow_remote_preview():
|
|
35
|
+
resources = [
|
|
36
|
+
ResourceFactory(extras=DUMMY_EXTRAS),
|
|
37
|
+
ResourceFactory(filetype="remote", extras=DUMMY_EXTRAS),
|
|
38
|
+
]
|
|
31
39
|
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
for resource in resources:
|
|
41
|
+
assert resource.preview_url == expected_url(resource.id)
|
|
34
42
|
|
|
35
43
|
|
|
36
|
-
|
|
37
|
-
|
|
44
|
+
@pytest.mark.options(
|
|
45
|
+
TABULAR_EXPLORE_URL="http://preview.me",
|
|
46
|
+
TABULAR_ALLOW_REMOTE=False,
|
|
47
|
+
)
|
|
48
|
+
def test_allow_remote_preview_false():
|
|
49
|
+
local = ResourceFactory(extras=DUMMY_EXTRAS)
|
|
50
|
+
remote = ResourceFactory(filetype="remote", extras=DUMMY_EXTRAS)
|
|
38
51
|
|
|
39
|
-
|
|
40
|
-
|
|
52
|
+
assert local.preview_url == expected_url(local.id)
|
|
53
|
+
assert remote.preview_url is None
|
|
41
54
|
|
|
42
|
-
def preview_url(self, resource):
|
|
43
|
-
return FALLBACK_PREVIEW_URL
|
|
44
55
|
|
|
56
|
+
@pytest.mark.options(TABULAR_EXPLORE_URL="http://preview.me")
|
|
57
|
+
def test_display_preview_without_max_size():
|
|
58
|
+
resource = ResourceFactory(extras=DUMMY_EXTRAS, filesize=2 * MAX_SIZE)
|
|
45
59
|
|
|
46
|
-
|
|
47
|
-
fallback = False
|
|
60
|
+
assert resource.preview_url == expected_url(resource.id)
|
|
48
61
|
|
|
49
|
-
def can_preview(self, resource):
|
|
50
|
-
return True
|
|
51
62
|
|
|
52
|
-
|
|
53
|
-
|
|
63
|
+
@pytest.mark.options(TABULAR_EXPLORE_URL="http://preview.me")
|
|
64
|
+
def test_no_preview_if_no_parsing_table_info():
|
|
65
|
+
extras = DUMMY_EXTRAS
|
|
66
|
+
del extras["analysis:parsing:parsing_table"]
|
|
54
67
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
@pytest.fixture(autouse=True)
|
|
58
|
-
def patch_entrypoint(self, request, mocker, app):
|
|
59
|
-
marker = request.node.get_closest_marker("preview")
|
|
60
|
-
plugins = marker.args[0] if marker else []
|
|
61
|
-
m = mocker.patch("udata.entrypoints.get_enabled")
|
|
62
|
-
m.return_value.values.return_value = plugins # Keep order
|
|
63
|
-
yield
|
|
64
|
-
m.assert_called_with("udata.preview", app)
|
|
65
|
-
|
|
66
|
-
def test_preview_is_none_by_default(self):
|
|
67
|
-
dataset = DatasetFactory(visible=True)
|
|
68
|
-
resource = dataset.resources[0]
|
|
69
|
-
assert resource.preview_url is None
|
|
70
|
-
|
|
71
|
-
@pytest.mark.preview([NeverPreview])
|
|
72
|
-
def test_resource_has_no_preview(self):
|
|
73
|
-
dataset = DatasetFactory(visible=True)
|
|
74
|
-
resource = dataset.resources[0]
|
|
75
|
-
assert resource.preview_url is None
|
|
76
|
-
|
|
77
|
-
@pytest.mark.preview([AlwaysPreview])
|
|
78
|
-
def test_resource_has_preview(self):
|
|
79
|
-
dataset = DatasetFactory(visible=True)
|
|
80
|
-
resource = dataset.resources[0]
|
|
81
|
-
assert resource.preview_url == PREVIEW_URL
|
|
82
|
-
|
|
83
|
-
@pytest.mark.preview([AlwaysPreview, NeverPreview, NeverPreview])
|
|
84
|
-
def test_resource_has_one_preview_with_multiple_plugins(self):
|
|
85
|
-
dataset = DatasetFactory(visible=True)
|
|
86
|
-
resource = dataset.resources[0]
|
|
87
|
-
assert resource.preview_url == PREVIEW_URL
|
|
88
|
-
|
|
89
|
-
@pytest.mark.preview([PreviewFromDataset])
|
|
90
|
-
def test_can_access_dataset_metadata(self):
|
|
91
|
-
dataset = DatasetFactory(visible=True, extras={"preview": PREVIEW_URL})
|
|
92
|
-
resource = dataset.resources[0]
|
|
93
|
-
assert resource.preview_url == PREVIEW_URL
|
|
94
|
-
|
|
95
|
-
@pytest.mark.preview([AlwaysPreview, AlwaysPreview])
|
|
96
|
-
def test_can_have_multiple_candidates(self):
|
|
97
|
-
dataset = DatasetFactory(visible=True)
|
|
98
|
-
resource = dataset.resources[0]
|
|
99
|
-
assert resource.preview_url == PREVIEW_URL
|
|
100
|
-
|
|
101
|
-
# order matters to ensure test is failing
|
|
102
|
-
@pytest.mark.preview([NeverPreview, FallbackPreview, AlwaysPreview])
|
|
103
|
-
def test_fallback_preview_comes_after(self):
|
|
104
|
-
dataset = DatasetFactory(visible=True)
|
|
105
|
-
resource = dataset.resources[0]
|
|
106
|
-
assert resource.preview_url == PREVIEW_URL
|
|
107
|
-
|
|
108
|
-
@pytest.mark.preview([NeverPreview, FallbackPreview])
|
|
109
|
-
def test_fallback_on_default_preview(self):
|
|
110
|
-
dataset = DatasetFactory(visible=True)
|
|
111
|
-
resource = dataset.resources[0]
|
|
112
|
-
assert resource.preview_url == FALLBACK_PREVIEW_URL
|
|
113
|
-
|
|
114
|
-
@pytest.mark.preview([NotAValidPlugin])
|
|
115
|
-
def test_warn_but_ignore_invalid_plugins(self):
|
|
116
|
-
expected_msg = "NotAValidPlugin is not a valid preview plugin"
|
|
117
|
-
with pytest.warns(PreviewWarning, match=expected_msg):
|
|
118
|
-
dataset = DatasetFactory(visible=True)
|
|
119
|
-
resource = dataset.resources[0]
|
|
120
|
-
assert resource.preview_url is None
|
|
68
|
+
resource = ResourceFactory(extras=extras, filesize=2 * MAX_SIZE)
|
|
69
|
+
assert resource.preview_url is None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: udata
|
|
3
|
-
Version: 10.6.1.
|
|
3
|
+
Version: 10.6.1.dev36176
|
|
4
4
|
Summary: Open data portal
|
|
5
5
|
Home-page: https://github.com/opendatateam/udata
|
|
6
6
|
Author: Opendata Team
|
|
@@ -142,7 +142,11 @@ It is collectively taken care of by members of the
|
|
|
142
142
|
|
|
143
143
|
## Current (in progress)
|
|
144
144
|
|
|
145
|
+
- Add name and siret filters for orgs [#3362](https://github.com/opendatateam/udata/pull/3362)
|
|
145
146
|
- Refactor how to get URLs to the cdata front-end, need to set the `CDATA_BASE_URL` env variable (removal of `endpoint_for()`, `fields.UrlFor()`, `display_url`, `external_url` and `external_url_with_campaign`) [#3345](https://github.com/opendatateam/udata/pull/3345)
|
|
147
|
+
- Add back preview_url from tabular API (remove the PreviewPlugin system) [#3364](https://github.com/opendatateam/udata/pull/3364)
|
|
148
|
+
- Do not crash on invalid schemas API JSON [#3363](https://github.com/opendatateam/udata/pull/3363/)
|
|
149
|
+
- Fix flaky test on timed recent Atom feeds [#3365](https://github.com/opendatateam/udata/pull/3365)
|
|
146
150
|
|
|
147
151
|
## 10.6.0 (2025-07-08)
|
|
148
152
|
|
|
@@ -13,7 +13,7 @@ udata/mail.py,sha256=FMGHcDAjHvk86iDUwBmVXpx3vbAb2c-j5C3BRnh9IYQ,2670
|
|
|
13
13
|
udata/rdf.py,sha256=NUuE-zCAmyFBlKpNEXIO98uIfup_JS-qggqP1_Z8RJ8,18307
|
|
14
14
|
udata/routing.py,sha256=OZOcgQ3x5eEuV7R58ouft9ORKDx0hf4oRUJLumRz89U,7739
|
|
15
15
|
udata/sentry.py,sha256=ekcxqUSqxfM98TtvCsPaOoX5i2l6PEcYt7kb4l3od-Q,3223
|
|
16
|
-
udata/settings.py,sha256=
|
|
16
|
+
udata/settings.py,sha256=uf2EfhZ4Ps1u6FW03xobVjxUBwthqsXyj5n2dgNi8yg,19667
|
|
17
17
|
udata/sitemap.py,sha256=oRRWoPI7ZsFFnUAOqGT1YuXFFKHBe8EcRnUCNHD7xjM,979
|
|
18
18
|
udata/tags.py,sha256=ydq4uokd6bzdeGVSpEXASVtGvDfO2LfQs9mptvvKJCM,631
|
|
19
19
|
udata/tasks.py,sha256=yTYBJG5bzEChX27p3MSqurSji84rg7w7OUvK4vuPRfY,5080
|
|
@@ -83,7 +83,7 @@ udata/core/contact_point/forms.py,sha256=oBe1agSJFyx2QRgYzPRg2A7qVscaBTaKG4V-AyI
|
|
|
83
83
|
udata/core/contact_point/models.py,sha256=Xqmqg7S13gcaKxiQT52WHeQEHTaUDDGIXInXyqNh4Po,854
|
|
84
84
|
udata/core/dataservices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
85
|
udata/core/dataservices/activities.py,sha256=CJK9DAohrG70YZAedHk3UdyIlF9cLaYeV6TR-aHosOs,1619
|
|
86
|
-
udata/core/dataservices/api.py,sha256=
|
|
86
|
+
udata/core/dataservices/api.py,sha256=drziW8nXh6gmVqbsJnlXPpGiwVXngfuUWZE7b0nJCzU,9290
|
|
87
87
|
udata/core/dataservices/apiv2.py,sha256=pd4UWF6m7pQ5nmBRFmeiDyedhZSngz211to6qTscVsA,1205
|
|
88
88
|
udata/core/dataservices/constants.py,sha256=SxetyqvbWQlb-T9Bqn7mdfzV3vS-is7s56rzmGzTXY0,1029
|
|
89
89
|
udata/core/dataservices/csv.py,sha256=pcNIeGaCzBMMna3n3YqHjsoXzfLtg_ITtDmdKb9svDc,1053
|
|
@@ -106,9 +106,9 @@ udata/core/dataset/events.py,sha256=bSM0nFEX14r4JHc-bAM-7OOuD3JAxUIpw9GgXbOsUyw,
|
|
|
106
106
|
udata/core/dataset/exceptions.py,sha256=uKiayLSpSzsnLvClObS6hOO0qXEqvURKN7_w8eimQNU,498
|
|
107
107
|
udata/core/dataset/factories.py,sha256=fRDWDlybR_ud4pDs1-ntWuYHKtV9LMHeBOBp2SmTT6M,9006
|
|
108
108
|
udata/core/dataset/forms.py,sha256=7KUxuFcEGT0MUe0cZCiZtsnZhvGgvEd68pe13NgeSMI,6292
|
|
109
|
-
udata/core/dataset/models.py,sha256=
|
|
109
|
+
udata/core/dataset/models.py,sha256=PsDDCsbkbVu1-OXoClsr46hgGTG_3ZJ21I7PkjV8sgE,43082
|
|
110
110
|
udata/core/dataset/permissions.py,sha256=zXQ6kU-Ni3Pl5tDtat-ZPupug9InsNeCN7xRLc2Vcrc,1097
|
|
111
|
-
udata/core/dataset/preview.py,sha256=
|
|
111
|
+
udata/core/dataset/preview.py,sha256=qXmd4-nKvIPtcKLrMqC-aJne4-vMIiq_NubpX39D6I0,855
|
|
112
112
|
udata/core/dataset/rdf.py,sha256=PFSzkpTFRdpa4cF-mxYU7IV1cJ73m80MmX-GZfWk3hg,30845
|
|
113
113
|
udata/core/dataset/recommendations.py,sha256=DlGSLU8D0nW6Ds1rjBav1WxC-0VW5yOCjkO5w-ltFcI,7171
|
|
114
114
|
udata/core/dataset/search.py,sha256=B8s4vp4Z5pma5c_Wm03Ncaeoi3LtX6jhbiaWd20bomI,5625
|
|
@@ -148,7 +148,7 @@ udata/core/metrics/signals.py,sha256=9mdJW__gR2GJT3huBr6HN2SDhKYJRgNbW9dnh48cAnU
|
|
|
148
148
|
udata/core/metrics/tasks.py,sha256=usv93kxRX5cJ3Xl3bTc8YUnVLUqtGYje_Qa71gsHPsU,858
|
|
149
149
|
udata/core/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
150
150
|
udata/core/organization/activities.py,sha256=Mw4-R8Q6G745IZnCDgrj7h2ax2crGYRhZtcewSK6_Ok,1213
|
|
151
|
-
udata/core/organization/api.py,sha256=
|
|
151
|
+
udata/core/organization/api.py,sha256=bjAxeQjCoaZBLNRdENwyANTds98DZzKfm9sylo-s1Wg,21455
|
|
152
152
|
udata/core/organization/api_fields.py,sha256=trvho6ssvh8ZfDmSj7ZWSWVJ03KD061aq39CuaxxRyM,7729
|
|
153
153
|
udata/core/organization/apiv2.py,sha256=fLMN5T7s8yF4u7c1WWHXMqQAlyH2OCSyAfmleiFlf7M,3037
|
|
154
154
|
udata/core/organization/commands.py,sha256=DsRAtFDZvTciYNsUWumQWdn0jnNmKW-PwfIHUUZoBb8,1591
|
|
@@ -449,8 +449,8 @@ udata/static/admin.css,sha256=gPM7oSehylBXQXyv0-gQ1LuyJiI1STQ_swM4CHjq_cs,185748
|
|
|
449
449
|
udata/static/admin.css.map,sha256=dzFd_AL3pQPFiww5oRwqnubDGJ9HNtYuAaiggLTjjB0,627543
|
|
450
450
|
udata/static/admin.js,sha256=iQnNCFKqwiSIMyJIeDBAD_gEwv8fABrzK5CoK3PZZME,1330409
|
|
451
451
|
udata/static/admin.js.map,sha256=09cK62bu_h0M4ajLf-Y2-sQCUFYPWKRw1PCQWQvfQyM,8518351
|
|
452
|
-
udata/static/common.js,sha256=
|
|
453
|
-
udata/static/common.js.map,sha256=
|
|
452
|
+
udata/static/common.js,sha256=WI9YGWdJGoQIQzUdOaaawJ2e4fk7w6ZvvT75cPfLPhw,2252
|
|
453
|
+
udata/static/common.js.map,sha256=SsuGjmUPpykjKvOk9NGe_bqDhlQvrhUX8YWoNYR012M,14137
|
|
454
454
|
udata/static/fontawesome-webfont.eot,sha256=e_yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk,165742
|
|
455
455
|
udata/static/fontawesome-webfont.svg,sha256=rWFXkmwWIrpOHQPUePFUE2hSS_xG9R5C_g2UX37zI-Q,444379
|
|
456
456
|
udata/static/fontawesome-webfont.ttf,sha256=qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg,165548
|
|
@@ -469,8 +469,8 @@ udata/static/chunks/1.0a96f54313c89e541ccb.js,sha256=A-lYXUeTLFOd_al9J_EpYMsbJZR
|
|
|
469
469
|
udata/static/chunks/1.0a96f54313c89e541ccb.js.map,sha256=Z4uWu-Bwj4JnQ49hqzkbRrfbtRUm65X93JQyDV6aLTM,1741737
|
|
470
470
|
udata/static/chunks/10.8ca60413647062717b1e.js,sha256=_jYUDOKowPicIui04ekBIOQvXAcF-ypsX5oxiORA8pw,414740
|
|
471
471
|
udata/static/chunks/10.8ca60413647062717b1e.js.map,sha256=XjAwHasDgaIA5idTs79YNuDC9Zlit8Xg20vSRptk03U,2736059
|
|
472
|
-
udata/static/chunks/11.
|
|
473
|
-
udata/static/chunks/11.
|
|
472
|
+
udata/static/chunks/11.51d706fb9521c16976bc.js,sha256=7vyFwTUxeDitXti-Nm29VxQfCphUgO5i9cQwdbztJJg,395562
|
|
473
|
+
udata/static/chunks/11.51d706fb9521c16976bc.js.map,sha256=Bu6vERhr4jiQ6PRN53Ynh8wME5stIE1SC794VSsINrs,2268951
|
|
474
474
|
udata/static/chunks/12.1be61e0201691821bff6.js,sha256=oveRcMtBsi97LUeAX86LjSAEVIpNxfWGHVovetKfPTw,421097
|
|
475
475
|
udata/static/chunks/12.1be61e0201691821bff6.js.map,sha256=ikkgGwMdOXW4ZXyucmqrxLqJQHIcXJJoMMNt01QFrZM,2442221
|
|
476
476
|
udata/static/chunks/13.39e106d56f794ebd06a0.js,sha256=FZEvPvSxnGW3XGJ0q-Zxv18sVjBfS_Z5MgyKI3ozfZs,420590
|
|
@@ -485,8 +485,8 @@ udata/static/chunks/17.70cbb4a91b002338007e.js,sha256=5t94NuMrHruXaJ6SrDiutIfgMr
|
|
|
485
485
|
udata/static/chunks/17.70cbb4a91b002338007e.js.map,sha256=weW85JpVW5lS2pNf-2OOjg05ibawV8ASdvzt6bMx6HE,1289996
|
|
486
486
|
udata/static/chunks/18.56444ebd2456a4ba2201.js,sha256=o78S_10_0k6kL0HbpDlbKZ5tZ-DCe6Y9XBex-SFS_s4,50384
|
|
487
487
|
udata/static/chunks/18.56444ebd2456a4ba2201.js.map,sha256=Xdv5UJ1TG-LZIlUjZm-yv59KA1omSq2dr8Ukfec46UE,277805
|
|
488
|
-
udata/static/chunks/19.
|
|
489
|
-
udata/static/chunks/19.
|
|
488
|
+
udata/static/chunks/19.a348a5fff8fe2801e52a.js,sha256=OKK0sOwCBCiNciDIQKugz7l-tWOzdymuho1GpahEZvE,203418
|
|
489
|
+
udata/static/chunks/19.a348a5fff8fe2801e52a.js.map,sha256=3HeVSYP0XPuCpEH7bO-moVr4ajgOFv-TmUDLlnHEIYc,1079969
|
|
490
490
|
udata/static/chunks/2.c67aa76cc078c193aed5.js,sha256=BjpQndwBdg9AT2lrY1TAgMfPbMvRytp33yI9YOgCOqc,276597
|
|
491
491
|
udata/static/chunks/2.c67aa76cc078c193aed5.js.map,sha256=FnPh12lCwilnq1jRp-d7226H5kpaA4-raWEk1Q0p42M,1556097
|
|
492
492
|
udata/static/chunks/20.3d4e02d1205a3c9e26c5.js,sha256=hRFQGBcks3lD-R4mNcNelqbr9kjz8jTtPee1lDWAVhY,36764
|
|
@@ -517,14 +517,14 @@ udata/static/chunks/33.011b367beb543774f950.js,sha256=pmgOHx33dbnHDnDISHjapoRmU-
|
|
|
517
517
|
udata/static/chunks/33.011b367beb543774f950.js.map,sha256=CzKVWHelXpz3DRimAGbVczh5X9Etru6qo1E_jhSZTBY,708099
|
|
518
518
|
udata/static/chunks/4.98dca3045c034c154d5f.js,sha256=HhytpLza7w6v9X_4g8xc96jdfryjT5_T1pzGMXf5owE,606930
|
|
519
519
|
udata/static/chunks/4.98dca3045c034c154d5f.js.map,sha256=QJ6SzTm_r0jThhBkZ4EtYQREZhIt_MX17XhTse06xYo,3714040
|
|
520
|
-
udata/static/chunks/5.
|
|
521
|
-
udata/static/chunks/5.
|
|
522
|
-
udata/static/chunks/6.
|
|
523
|
-
udata/static/chunks/6.
|
|
520
|
+
udata/static/chunks/5.343ca020a2d38cec1a14.js,sha256=VSHA4j7W80j-MmHgqbvwZg1a9_F4e-Plqp8A6i91vx8,579464
|
|
521
|
+
udata/static/chunks/5.343ca020a2d38cec1a14.js.map,sha256=TdGRFBLHrG3nYfAWGSXpvPDaCP-W_b7nsB7yvBnNadU,3587779
|
|
522
|
+
udata/static/chunks/6.a3b07de9dd2ca2d24e85.js,sha256=BYcKqgroGFqXARMLn7PRgzSHzieninYD2iANCz1-pRs,609837
|
|
523
|
+
udata/static/chunks/6.a3b07de9dd2ca2d24e85.js.map,sha256=Q1f-fBSy2I0ur5AGr4xIbK7xHXpOy66My8VNTNL9khU,3783190
|
|
524
524
|
udata/static/chunks/7.896bbffe39433bb598f7.js,sha256=C1NrGe6wrptQFYCCmITtx12dGqfaO7136-9BD6m05Ts,157150
|
|
525
525
|
udata/static/chunks/7.896bbffe39433bb598f7.js.map,sha256=aZB8qYRkX4oqSugjG69tMlv64YIW5LPXF_8uACMHMTw,813014
|
|
526
|
-
udata/static/chunks/8.
|
|
527
|
-
udata/static/chunks/8.
|
|
526
|
+
udata/static/chunks/8.462bb3029de008497675.js,sha256=ng7iZGz6EyJSj34lCruTC1QIOQdg653IaV9KkKO8BWU,222856
|
|
527
|
+
udata/static/chunks/8.462bb3029de008497675.js.map,sha256=-0Hmllm-sFl9qAPCShzDyQKFU9zAi4-eOVQdmlCQ2qs,1205076
|
|
528
528
|
udata/static/chunks/9.033d7e190ca9e226a5d0.js,sha256=NmyhScUINZKQbc3A-zIZr9vEGy59Ktb9xkI-d0oaEvo,416716
|
|
529
529
|
udata/static/chunks/9.033d7e190ca9e226a5d0.js.map,sha256=n08Lnx4NZFACwgehhaZfstLOnqDam_IUQhNLlUjMEVo,2746303
|
|
530
530
|
udata/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -634,14 +634,14 @@ udata/tests/api/test_activities_api.py,sha256=WSBScq_gMaBJJchvmyoc_LnslXemgfvdDM
|
|
|
634
634
|
udata/tests/api/test_auth_api.py,sha256=OMRlY0OQt60j5N4A-N3HdWTuffOjRlFHkz5a3jJFieI,25987
|
|
635
635
|
udata/tests/api/test_base_api.py,sha256=2w_vz0eEuq3P3aN-ByvxGc3VZAo7XtgatFfcrzf2uEU,2244
|
|
636
636
|
udata/tests/api/test_contact_points.py,sha256=X_RWD_xCfR8WchhHfKEt5mxMHY77OmTyguNKCsZftdE,5337
|
|
637
|
-
udata/tests/api/test_dataservices_api.py,sha256=
|
|
638
|
-
udata/tests/api/test_datasets_api.py,sha256=
|
|
637
|
+
udata/tests/api/test_dataservices_api.py,sha256=PGl-817qFAHXmIjb3qzpFzp7sVXSq8gwEzG-g01Qnn8,31025
|
|
638
|
+
udata/tests/api/test_datasets_api.py,sha256=Jw3IULsr5EGfw9FO5vVW_nSa7p4RBPqb0AbkXtQGOjA,102222
|
|
639
639
|
udata/tests/api/test_fields.py,sha256=OW85Z5MES5HeWOpapeem8OvR1cIcrqW-xMWpdZO4LZ8,1033
|
|
640
640
|
udata/tests/api/test_follow_api.py,sha256=4nFXG5pZ_Hf2PJ4KEdHJX_uggjc9RpB8v0fidkAcw9I,5792
|
|
641
641
|
udata/tests/api/test_me_api.py,sha256=YPd8zmR3zwJKtpSqz8nY1nOOMyXs66INeBwyhg5D0Us,13846
|
|
642
|
-
udata/tests/api/test_organizations_api.py,sha256=
|
|
642
|
+
udata/tests/api/test_organizations_api.py,sha256=0G6ArhGs1tpnj39TvQ5jxb13jaKFbqGyopsWi0it36M,43012
|
|
643
643
|
udata/tests/api/test_reports_api.py,sha256=fCSz9NwMXBs6cxdXBVVI6y564AtovmZYw3xkgxQ9KE8,6217
|
|
644
|
-
udata/tests/api/test_reuses_api.py,sha256=
|
|
644
|
+
udata/tests/api/test_reuses_api.py,sha256=8yhs1y_EDzusSV86bb7M7V9-qw-Al1JFecLs33AR8GU,27225
|
|
645
645
|
udata/tests/api/test_swagger.py,sha256=eE6La9qdTYTIUFevRVPJgtj17Jq_8uOlsDwzCNR0LL8,760
|
|
646
646
|
udata/tests/api/test_tags_api.py,sha256=36zEBgthVEn6pctJ0kDgPmEaUr-iqRAHeZRcRG2LEXQ,2425
|
|
647
647
|
udata/tests/api/test_topics_api.py,sha256=rnOpMn3BQ5fKVzaBTRzhOKcnwNJe7hiDIEIe2fUXRLk,12320
|
|
@@ -670,7 +670,7 @@ udata/tests/dataset/test_dataset_model.py,sha256=av4RhOnT-52qs-WL1NCn6R2SMa_fzDc
|
|
|
670
670
|
udata/tests/dataset/test_dataset_rdf.py,sha256=j919psNAH0scn0DIwHNlqiZGFKd_lKOlyTisICNGeOE,44327
|
|
671
671
|
udata/tests/dataset/test_dataset_recommendations.py,sha256=K52HXGXi9DuUSiSRQWpqTrsFCkYbv7K3upNp0fFp5v8,7068
|
|
672
672
|
udata/tests/dataset/test_dataset_tasks.py,sha256=n1W2Pg0ez02d66zQG3N93kh7dpR2yLMRDqUI6PnPaI0,3088
|
|
673
|
-
udata/tests/dataset/test_resource_preview.py,sha256=
|
|
673
|
+
udata/tests/dataset/test_resource_preview.py,sha256=AxSF8cnG6bhy2pz9Fi3PfEzdLlNhZ0xrp9dr6yrt31A,2051
|
|
674
674
|
udata/tests/dataset/test_transport_tasks.py,sha256=BYr1WPV0Crirzb2jC_wAV4y_pzImRCAS4zYZ7qvCDeY,2964
|
|
675
675
|
udata/tests/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
676
676
|
udata/tests/features/territories/__init__.py,sha256=gMD73RL-ymcWvGPDPM0aPxz7WAfd1VEDL8YHRI7HT0Q,956
|
|
@@ -737,9 +737,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=9sCd1MUKvtVP_sOXvK-G5v4PfWkkdA
|
|
|
737
737
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=-eJptz9s63rjkdm-3HJi_2t70pyv3-8EuXBn-B2qI_4,48419
|
|
738
738
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=qduXntHWe__KaUxJ4JwwyGG3eSgYb1auGdNax0lS49c,29169
|
|
739
739
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=6QCuLMCRjgyAvu9U7i0P19ae8fm_uStfmxHLqUO9EoY,55394
|
|
740
|
-
udata-10.6.1.
|
|
741
|
-
udata-10.6.1.
|
|
742
|
-
udata-10.6.1.
|
|
743
|
-
udata-10.6.1.
|
|
744
|
-
udata-10.6.1.
|
|
745
|
-
udata-10.6.1.
|
|
740
|
+
udata-10.6.1.dev36176.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
741
|
+
udata-10.6.1.dev36176.dist-info/METADATA,sha256=YAV5z5Z9aYAY91nqFrMTIAVdm-PuyUK568P-FtIOsl8,150654
|
|
742
|
+
udata-10.6.1.dev36176.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
|
|
743
|
+
udata-10.6.1.dev36176.dist-info/entry_points.txt,sha256=ETvkR4r6G1duBsh_V_fGWENQy17GTFuobi95MYBAl1A,498
|
|
744
|
+
udata-10.6.1.dev36176.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
|
|
745
|
+
udata-10.6.1.dev36176.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|