udata 9.0.1.dev29696__py2.py3-none-any.whl → 9.0.1.dev29728__py2.py3-none-any.whl

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

Potentially problematic release.


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

Files changed (32) hide show
  1. udata/api/__init__.py +1 -0
  2. udata/api_fields.py +3 -0
  3. udata/core/reports/__init__.py +0 -0
  4. udata/core/reports/api.py +43 -0
  5. udata/core/reports/constants.py +28 -0
  6. udata/core/reports/models.py +57 -0
  7. udata/models/__init__.py +1 -0
  8. udata/routing.py +1 -1
  9. udata/static/chunks/{11.ae54612e36c6d46f85db.js → 11.7266fef2dddc1db403d9.js} +3 -3
  10. udata/static/chunks/{11.ae54612e36c6d46f85db.js.map → 11.7266fef2dddc1db403d9.js.map} +1 -1
  11. udata/static/chunks/{13.d8ccb992a49875966313.js → 13.91b177d7d531fd55cf5d.js} +2 -2
  12. udata/static/chunks/{13.d8ccb992a49875966313.js.map → 13.91b177d7d531fd55cf5d.js.map} +1 -1
  13. udata/static/chunks/{16.4565605e68bab129a471.js → 16.e866757bab9f6b0a3f1b.js} +2 -2
  14. udata/static/chunks/{16.4565605e68bab129a471.js.map → 16.e866757bab9f6b0a3f1b.js.map} +1 -1
  15. udata/static/chunks/{19.f993a75d5bfe2382548d.js → 19.619b83ac597516dcd03e.js} +3 -3
  16. udata/static/chunks/{19.f993a75d5bfe2382548d.js.map → 19.619b83ac597516dcd03e.js.map} +1 -1
  17. udata/static/chunks/{5.cc2e7bf65ef32f9c8604.js → 5.48417db6b33328fa9d6a.js} +3 -3
  18. udata/static/chunks/{5.cc2e7bf65ef32f9c8604.js.map → 5.48417db6b33328fa9d6a.js.map} +1 -1
  19. udata/static/chunks/{6.cad898a38692eda28965.js → 6.f84539bd4c419b36cc19.js} +3 -3
  20. udata/static/chunks/{6.cad898a38692eda28965.js.map → 6.f84539bd4c419b36cc19.js.map} +1 -1
  21. udata/static/chunks/{9.d5b992e9ef51921aeb57.js → 9.07503e7f7ec02919f696.js} +2 -2
  22. udata/static/chunks/{9.d5b992e9ef51921aeb57.js.map → 9.07503e7f7ec02919f696.js.map} +1 -1
  23. udata/static/common.js +1 -1
  24. udata/static/common.js.map +1 -1
  25. udata/tests/api/test_reports_api.py +88 -0
  26. udata/translations/udata.pot +31 -11
  27. {udata-9.0.1.dev29696.dist-info → udata-9.0.1.dev29728.dist-info}/METADATA +3 -1
  28. {udata-9.0.1.dev29696.dist-info → udata-9.0.1.dev29728.dist-info}/RECORD +32 -27
  29. {udata-9.0.1.dev29696.dist-info → udata-9.0.1.dev29728.dist-info}/LICENSE +0 -0
  30. {udata-9.0.1.dev29696.dist-info → udata-9.0.1.dev29728.dist-info}/WHEEL +0 -0
  31. {udata-9.0.1.dev29696.dist-info → udata-9.0.1.dev29728.dist-info}/entry_points.txt +0 -0
  32. {udata-9.0.1.dev29696.dist-info → udata-9.0.1.dev29728.dist-info}/top_level.txt +0 -0
udata/static/common.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e){function __webpack_require__(a){if(c[a])return c[a].exports;var f=c[a]={exports:{},id:a,loaded:!1};return e[a].call(f.exports,f,f.exports,__webpack_require__),f.loaded=!0,f.exports}var a=window.webpackJsonp;window.webpackJsonp=function(b,r){for(var t,_,n=0,d=[];n<b.length;n++)_=b[n],f[_]&&d.push.apply(d,f[_]),f[_]=0;for(t in r){var i=r[t];switch(typeof i){case"object":e[t]=function(a){var c=a.slice(1),f=a[0];return function(a,b,r){e[f].apply(this,[a,b,r].concat(c))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(a&&a(b,r);d.length;)d.shift().call(null,__webpack_require__);if(r[0])return c[0]=0,__webpack_require__(0)};var c={},f={31:0};__webpack_require__.e=function(e,a){if(0===f[e])return a.call(null,__webpack_require__);if(void 0!==f[e])f[e].push(a);else{f[e]=[a];var c=document.getElementsByTagName("head")[0],b=document.createElement("script");b.type="text/javascript",b.charset="utf-8",b.async=!0,b.src=__webpack_require__.p+"chunks/"+e+"."+{0:"93c3ae13b5b94753ee80",1:"ff8196d42cab0f031d3f",2:"614b3e73b072982fd9b1",3:"1ca609753b5a02de0ca3",4:"95e6a070a0eb2ed08fdd",5:"cc2e7bf65ef32f9c8604",6:"cad898a38692eda28965",7:"e2106342e94ee09393b1",8:"17d1afb591ad1495bd03",9:"d5b992e9ef51921aeb57",10:"e97ea231893dc435d6b5",11:"ae54612e36c6d46f85db",12:"59f035a9438e2baf5126",13:"d8ccb992a49875966313",14:"e64890872b31c55fcdf7",15:"92b2cef3032ea35da04a",16:"4565605e68bab129a471",17:"15ecbcf8f0b2968689e8",18:"1922fd0b2b7fad122991",19:"f993a75d5bfe2382548d",20:"14a92e5c503f74ff40df",21:"ccbfce6680a2b11a5284",22:"bc79367e5f4c8ad00038",23:"5486b3fc83b194d55191",24:"e905e3f6ba089a34b07c",25:"e20b4daac9fb2bdceee6",26:"c8f33e73b9117b70aef8",27:"6779f92692327013b446",28:"280c392f19bc9e908abf",29:"daadfa33135efe4e5534",30:"b2464d08ccbeb40ec74e",32:"1a2e06fc4fa771fb27be",33:"70f8e7b1964892a24e67"}[e]+".js",c.appendChild(b)}},__webpack_require__.m=e,__webpack_require__.c=c,__webpack_require__.p="/static/"}(function(e){for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a))switch(typeof e[a]){case"function":break;case"object":e[a]=function(a){var c=a.slice(1),f=e[a[0]];return function(e,a,b){f.apply(this,[e,a,b].concat(c))}}(e[a]);break;default:e[a]=e[e[a]]}return e}([]));
1
+ !function(e){function __webpack_require__(a){if(c[a])return c[a].exports;var f=c[a]={exports:{},id:a,loaded:!1};return e[a].call(f.exports,f,f.exports,__webpack_require__),f.loaded=!0,f.exports}var a=window.webpackJsonp;window.webpackJsonp=function(b,r){for(var t,d,_=0,n=[];_<b.length;_++)d=b[_],f[d]&&n.push.apply(n,f[d]),f[d]=0;for(t in r){var i=r[t];switch(typeof i){case"object":e[t]=function(a){var c=a.slice(1),f=a[0];return function(a,b,r){e[f].apply(this,[a,b,r].concat(c))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(a&&a(b,r);n.length;)n.shift().call(null,__webpack_require__);if(r[0])return c[0]=0,__webpack_require__(0)};var c={},f={31:0};__webpack_require__.e=function(e,a){if(0===f[e])return a.call(null,__webpack_require__);if(void 0!==f[e])f[e].push(a);else{f[e]=[a];var c=document.getElementsByTagName("head")[0],b=document.createElement("script");b.type="text/javascript",b.charset="utf-8",b.async=!0,b.src=__webpack_require__.p+"chunks/"+e+"."+{0:"93c3ae13b5b94753ee80",1:"ff8196d42cab0f031d3f",2:"614b3e73b072982fd9b1",3:"1ca609753b5a02de0ca3",4:"95e6a070a0eb2ed08fdd",5:"48417db6b33328fa9d6a",6:"f84539bd4c419b36cc19",7:"e2106342e94ee09393b1",8:"17d1afb591ad1495bd03",9:"07503e7f7ec02919f696",10:"e97ea231893dc435d6b5",11:"7266fef2dddc1db403d9",12:"59f035a9438e2baf5126",13:"91b177d7d531fd55cf5d",14:"e64890872b31c55fcdf7",15:"92b2cef3032ea35da04a",16:"e866757bab9f6b0a3f1b",17:"15ecbcf8f0b2968689e8",18:"1922fd0b2b7fad122991",19:"619b83ac597516dcd03e",20:"14a92e5c503f74ff40df",21:"ccbfce6680a2b11a5284",22:"bc79367e5f4c8ad00038",23:"5486b3fc83b194d55191",24:"e905e3f6ba089a34b07c",25:"e20b4daac9fb2bdceee6",26:"c8f33e73b9117b70aef8",27:"6779f92692327013b446",28:"280c392f19bc9e908abf",29:"daadfa33135efe4e5534",30:"b2464d08ccbeb40ec74e",32:"1a2e06fc4fa771fb27be",33:"70f8e7b1964892a24e67"}[e]+".js",c.appendChild(b)}},__webpack_require__.m=e,__webpack_require__.c=c,__webpack_require__.p="/static/"}(function(e){for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a))switch(typeof e[a]){case"function":break;case"object":e[a]=function(a){var c=a.slice(1),f=e[a[0]];return function(e,a,b){f.apply(this,[e,a,b].concat(c))}}(e[a]);break;default:e[a]=e[e[a]]}return e}([]));
2
2
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap 7ceb0f0554bc8763530d"],"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\":\"93c3ae13b5b94753ee80\",\"1\":\"ff8196d42cab0f031d3f\",\"2\":\"614b3e73b072982fd9b1\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"95e6a070a0eb2ed08fdd\",\"5\":\"cc2e7bf65ef32f9c8604\",\"6\":\"cad898a38692eda28965\",\"7\":\"e2106342e94ee09393b1\",\"8\":\"17d1afb591ad1495bd03\",\"9\":\"d5b992e9ef51921aeb57\",\"10\":\"e97ea231893dc435d6b5\",\"11\":\"ae54612e36c6d46f85db\",\"12\":\"59f035a9438e2baf5126\",\"13\":\"d8ccb992a49875966313\",\"14\":\"e64890872b31c55fcdf7\",\"15\":\"92b2cef3032ea35da04a\",\"16\":\"4565605e68bab129a471\",\"17\":\"15ecbcf8f0b2968689e8\",\"18\":\"1922fd0b2b7fad122991\",\"19\":\"f993a75d5bfe2382548d\",\"20\":\"14a92e5c503f74ff40df\",\"21\":\"ccbfce6680a2b11a5284\",\"22\":\"bc79367e5f4c8ad00038\",\"23\":\"5486b3fc83b194d55191\",\"24\":\"e905e3f6ba089a34b07c\",\"25\":\"e20b4daac9fb2bdceee6\",\"26\":\"c8f33e73b9117b70aef8\",\"27\":\"6779f92692327013b446\",\"28\":\"280c392f19bc9e908abf\",\"29\":\"daadfa33135efe4e5534\",\"30\":\"b2464d08ccbeb40ec74e\",\"32\":\"1a2e06fc4fa771fb27be\",\"33\":\"70f8e7b1964892a24e67\"}[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\":\"93c3ae13b5b94753ee80\",\"1\":\"ff8196d42cab0f031d3f\",\"2\":\"614b3e73b072982fd9b1\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"95e6a070a0eb2ed08fdd\",\"5\":\"cc2e7bf65ef32f9c8604\",\"6\":\"cad898a38692eda28965\",\"7\":\"e2106342e94ee09393b1\",\"8\":\"17d1afb591ad1495bd03\",\"9\":\"d5b992e9ef51921aeb57\",\"10\":\"e97ea231893dc435d6b5\",\"11\":\"ae54612e36c6d46f85db\",\"12\":\"59f035a9438e2baf5126\",\"13\":\"d8ccb992a49875966313\",\"14\":\"e64890872b31c55fcdf7\",\"15\":\"92b2cef3032ea35da04a\",\"16\":\"4565605e68bab129a471\",\"17\":\"15ecbcf8f0b2968689e8\",\"18\":\"1922fd0b2b7fad122991\",\"19\":\"f993a75d5bfe2382548d\",\"20\":\"14a92e5c503f74ff40df\",\"21\":\"ccbfce6680a2b11a5284\",\"22\":\"bc79367e5f4c8ad00038\",\"23\":\"5486b3fc83b194d55191\",\"24\":\"e905e3f6ba089a34b07c\",\"25\":\"e20b4daac9fb2bdceee6\",\"26\":\"c8f33e73b9117b70aef8\",\"27\":\"6779f92692327013b446\",\"28\":\"280c392f19bc9e908abf\",\"29\":\"daadfa33135efe4e5534\",\"30\":\"b2464d08ccbeb40ec74e\",\"32\":\"1a2e06fc4fa771fb27be\",\"33\":\"70f8e7b1964892a24e67\"}[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 7ceb0f0554bc8763530d\n **/"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap e7b65707b95946bef828"],"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\":\"93c3ae13b5b94753ee80\",\"1\":\"ff8196d42cab0f031d3f\",\"2\":\"614b3e73b072982fd9b1\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"95e6a070a0eb2ed08fdd\",\"5\":\"48417db6b33328fa9d6a\",\"6\":\"f84539bd4c419b36cc19\",\"7\":\"e2106342e94ee09393b1\",\"8\":\"17d1afb591ad1495bd03\",\"9\":\"07503e7f7ec02919f696\",\"10\":\"e97ea231893dc435d6b5\",\"11\":\"7266fef2dddc1db403d9\",\"12\":\"59f035a9438e2baf5126\",\"13\":\"91b177d7d531fd55cf5d\",\"14\":\"e64890872b31c55fcdf7\",\"15\":\"92b2cef3032ea35da04a\",\"16\":\"e866757bab9f6b0a3f1b\",\"17\":\"15ecbcf8f0b2968689e8\",\"18\":\"1922fd0b2b7fad122991\",\"19\":\"619b83ac597516dcd03e\",\"20\":\"14a92e5c503f74ff40df\",\"21\":\"ccbfce6680a2b11a5284\",\"22\":\"bc79367e5f4c8ad00038\",\"23\":\"5486b3fc83b194d55191\",\"24\":\"e905e3f6ba089a34b07c\",\"25\":\"e20b4daac9fb2bdceee6\",\"26\":\"c8f33e73b9117b70aef8\",\"27\":\"6779f92692327013b446\",\"28\":\"280c392f19bc9e908abf\",\"29\":\"daadfa33135efe4e5534\",\"30\":\"b2464d08ccbeb40ec74e\",\"32\":\"1a2e06fc4fa771fb27be\",\"33\":\"70f8e7b1964892a24e67\"}[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\":\"93c3ae13b5b94753ee80\",\"1\":\"ff8196d42cab0f031d3f\",\"2\":\"614b3e73b072982fd9b1\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"95e6a070a0eb2ed08fdd\",\"5\":\"48417db6b33328fa9d6a\",\"6\":\"f84539bd4c419b36cc19\",\"7\":\"e2106342e94ee09393b1\",\"8\":\"17d1afb591ad1495bd03\",\"9\":\"07503e7f7ec02919f696\",\"10\":\"e97ea231893dc435d6b5\",\"11\":\"7266fef2dddc1db403d9\",\"12\":\"59f035a9438e2baf5126\",\"13\":\"91b177d7d531fd55cf5d\",\"14\":\"e64890872b31c55fcdf7\",\"15\":\"92b2cef3032ea35da04a\",\"16\":\"e866757bab9f6b0a3f1b\",\"17\":\"15ecbcf8f0b2968689e8\",\"18\":\"1922fd0b2b7fad122991\",\"19\":\"619b83ac597516dcd03e\",\"20\":\"14a92e5c503f74ff40df\",\"21\":\"ccbfce6680a2b11a5284\",\"22\":\"bc79367e5f4c8ad00038\",\"23\":\"5486b3fc83b194d55191\",\"24\":\"e905e3f6ba089a34b07c\",\"25\":\"e20b4daac9fb2bdceee6\",\"26\":\"c8f33e73b9117b70aef8\",\"27\":\"6779f92692327013b446\",\"28\":\"280c392f19bc9e908abf\",\"29\":\"daadfa33135efe4e5534\",\"30\":\"b2464d08ccbeb40ec74e\",\"32\":\"1a2e06fc4fa771fb27be\",\"33\":\"70f8e7b1964892a24e67\"}[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 e7b65707b95946bef828\n **/"],"sourceRoot":""}
@@ -0,0 +1,88 @@
1
+ from typing import List
2
+ from flask import url_for
3
+
4
+ from udata.core.dataset.factories import (DatasetFactory)
5
+ from udata.core.dataset.models import Dataset
6
+ from udata.core.reports.models import Report
7
+ from udata.core.reports.constants import REASON_ILLEGAL_CONTENT, REASON_SPAM, reports_reasons_translations
8
+ from udata.i18n import gettext as _
9
+
10
+ from . import APITestCase
11
+
12
+
13
+ class ReportsReasonsAPITest(APITestCase):
14
+ modules = []
15
+
16
+ def test_reports_reasons_api(self):
17
+ response = self.get(url_for('api.reports_reasons'))
18
+ self.assert200(response)
19
+ self.assertEqual(response.json, reports_reasons_translations())
20
+
21
+ class ReportsAPITest(APITestCase):
22
+ modules = []
23
+
24
+ def test_reports_api_create(self):
25
+ user = self.login()
26
+ illegal_dataset = DatasetFactory.create(owner=user)
27
+ spam_dataset = DatasetFactory.create(owner=user)
28
+
29
+ response = self.post(url_for('api.reports'), {
30
+ 'object_type': 'Dataset',
31
+ 'object_id': illegal_dataset.id,
32
+ 'message': 'This is not appropriate',
33
+ 'reason': REASON_ILLEGAL_CONTENT,
34
+ })
35
+ self.assert201(response)
36
+ self.assertEqual(Report.objects.count(), 1)
37
+
38
+ response = self.post(url_for('api.reports'), {
39
+ 'object_type': 'Dataset',
40
+ 'object_id': spam_dataset.id,
41
+ 'message': 'This is spammy',
42
+ 'reason': REASON_SPAM,
43
+ })
44
+ self.assert201(response)
45
+ self.assertEqual(Report.objects.count(), 2)
46
+
47
+ reports: List[Report] = list(Report.objects())
48
+ self.assertEqual(Dataset.__name__, reports[0].object_type)
49
+ self.assertEqual(illegal_dataset.id, reports[0].object_id)
50
+ self.assertEqual('This is not appropriate', reports[0].message)
51
+ self.assertEqual(REASON_ILLEGAL_CONTENT, reports[0].reason)
52
+ self.assertEqual(user.id, reports[0].by.id)
53
+
54
+ self.assertEqual(Dataset.__name__, reports[1].object_type)
55
+ self.assertEqual(spam_dataset.id, reports[1].object_id)
56
+ self.assertEqual('This is spammy', reports[1].message)
57
+ self.assertEqual(REASON_SPAM, reports[1].reason)
58
+ self.assertEqual(user.id, reports[1].by.id)
59
+
60
+ response = self.delete(url_for('api.dataset', dataset=illegal_dataset))
61
+ self.assert204(response)
62
+
63
+ reports[0].reload()
64
+ self.assertEqual(Dataset.__name__, reports[0].object_type)
65
+ self.assertEqual(illegal_dataset.id, reports[0].object_id)
66
+ self.assertEqual('This is not appropriate', reports[0].message)
67
+ self.assertEqual(REASON_ILLEGAL_CONTENT, reports[0].reason)
68
+ self.assertEqual(user.id, reports[0].by.id)
69
+ self.assertIsNotNone(reports[0].object_deleted_at)
70
+
71
+ reports[1].reload()
72
+ self.assertEqual(Dataset.__name__, reports[1].object_type)
73
+ self.assertEqual(spam_dataset.id, reports[1].object_id)
74
+ self.assertEqual('This is spammy', reports[1].message)
75
+ self.assertEqual(REASON_SPAM, reports[1].reason)
76
+ self.assertEqual(user.id, reports[1].by.id)
77
+ self.assertIsNone(reports[1].object_deleted_at)
78
+
79
+ # We should take action on manual delete in the database too
80
+ spam_dataset.delete()
81
+
82
+ reports[1].reload()
83
+ self.assertIsNotNone(reports[1].object_deleted_at)
84
+
85
+ response = self.get(url_for('api.reports'))
86
+ self.assert200(response)
87
+ self.assertEqual(len(response.json['data']), 2)
88
+
@@ -8,8 +8,8 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: udata 9.0.1.dev0\n"
10
10
  "Report-Msgid-Bugs-To: i18n@opendata.team\n"
11
- "POT-Creation-Date: 2024-06-14 11:31+0200\n"
12
- "PO-Revision-Date: 2024-06-14 11:31+0200\n"
11
+ "POT-Creation-Date: 2024-07-01 13:45+0200\n"
12
+ "PO-Revision-Date: 2024-07-01 13:45+0200\n"
13
13
  "Last-Translator: Open Data Team <i18n@opendata.team>\n"
14
14
  "Language: en\n"
15
15
  "Language-Team: Open Data Team <i18n@opendata.team>\n"
@@ -43,7 +43,7 @@ msgstr ""
43
43
  msgid "Password reset instructions"
44
44
  msgstr ""
45
45
 
46
- #: udata/settings.py:433
46
+ #: udata/settings.py:435
47
47
  msgid "This dataset has been archived"
48
48
  msgstr ""
49
49
 
@@ -51,7 +51,7 @@ msgstr ""
51
51
  msgid "Invalid URL \"{url}\": {reason}"
52
52
  msgstr ""
53
53
 
54
- #: udata/uris.py:54
54
+ #: udata/tests/test_model.py:370 udata/uris.py:54
55
55
  msgid "Invalid URL \"{url}\""
56
56
  msgstr ""
57
57
 
@@ -556,7 +556,7 @@ msgid ""
556
556
  "Allowed versions: {values}"
557
557
  msgstr ""
558
558
 
559
- #: udata/core/dataset/models.py:401 udata/core/dataset/rdf.py:430
559
+ #: udata/core/dataset/models.py:401 udata/core/dataset/rdf.py:436
560
560
  #: udata/tests/dataset/test_dataset_rdf.py:517
561
561
  #: udata/tests/dataset/test_dataset_rdf.py:530
562
562
  msgid "Nameless resource"
@@ -574,7 +574,7 @@ msgstr ""
574
574
  msgid "dataset"
575
575
  msgstr ""
576
576
 
577
- #: udata/core/dataset/rdf.py:428 udata/tests/dataset/test_dataset_rdf.py:504
577
+ #: udata/core/dataset/rdf.py:434 udata/tests/dataset/test_dataset_rdf.py:504
578
578
  msgid "{format} resource"
579
579
  msgstr ""
580
580
 
@@ -806,6 +806,30 @@ msgstr ""
806
806
  msgid "post"
807
807
  msgstr ""
808
808
 
809
+ #: udata/core/reports/constants.py:19
810
+ msgid "Spam"
811
+ msgstr ""
812
+
813
+ #: udata/core/reports/constants.py:20
814
+ msgid "Personal data"
815
+ msgstr ""
816
+
817
+ #: udata/core/reports/constants.py:21
818
+ msgid "Explicit content"
819
+ msgstr ""
820
+
821
+ #: udata/core/reports/constants.py:22
822
+ msgid "Illegal content"
823
+ msgstr ""
824
+
825
+ #: udata/core/reports/constants.py:23
826
+ msgid "Security"
827
+ msgstr ""
828
+
829
+ #: udata/core/reports/constants.py:24 udata/core/reuse/constants.py:29
830
+ msgid "Others"
831
+ msgstr ""
832
+
809
833
  #: udata/core/reuse/activities.py:22
810
834
  msgid "created a reuse"
811
835
  msgstr ""
@@ -902,10 +926,6 @@ msgstr ""
902
926
  msgid "Open data tools"
903
927
  msgstr ""
904
928
 
905
- #: udata/core/reuse/constants.py:29
906
- msgid "Others"
907
- msgstr ""
908
-
909
929
  #: udata/core/reuse/forms.py:14
910
930
  msgid "This URL is already registered"
911
931
  msgstr ""
@@ -1596,7 +1616,7 @@ msgid "Here"
1596
1616
  msgstr ""
1597
1617
 
1598
1618
  #: udata/tests/api/test_datasets_api.py:764
1599
- msgid "Invalid URL"
1619
+ msgid "Invalid URL \"test\""
1600
1620
  msgstr ""
1601
1621
 
1602
1622
  #: udata/tests/forms/test_model_field.py:155
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: udata
3
- Version: 9.0.1.dev29696
3
+ Version: 9.0.1.dev29728
4
4
  Summary: Open data portal
5
5
  Home-page: https://github.com/opendatateam/udata
6
6
  Author: Opendata Team
@@ -137,6 +137,7 @@ It is collectively taken care of by members of the
137
137
 
138
138
  ## Current (in progress)
139
139
 
140
+ - Add reports backend [#3069](https://github.com/opendatateam/udata/pull/3069)
140
141
  - Improve `udata db check-integrity` (perfs, Sentry notifications…) [#3026](https://github.com/opendatateam/udata/pull/3026)
141
142
  - Harvest dataservices [#3029](https://github.com/opendatateam/udata/pull/3029)
142
143
  - Refactor catalog exports [#3052](https://github.com/opendatateam/udata/pull/3052)
@@ -150,6 +151,7 @@ It is collectively taken care of by members of the
150
151
  - Prevent tagging as spam owners' messages [#3071](https://github.com/opendatateam/udata/pull/3071)
151
152
  - Add api endpoint /me/org_topics/ [#3070](https://github.com/opendatateam/udata/pull/3070)
152
153
  - Expose dataservices in RDF catalog [#3058](https://github.com/opendatateam/udata/pull/3058)
154
+ - CORS: always returns 204 on OPTIONS request [#3046](https://github.com/opendatateam/udata/pull/3046)
153
155
 
154
156
  ## 9.0.0 (2024-06-07)
155
157
 
@@ -1,7 +1,7 @@
1
1
  tasks/__init__.py,sha256=CnVhb_TV-6nMhxVR6itnBmvuU2OSCs02AfNB4irVBTE,8132
2
2
  tasks/helpers.py,sha256=k_HiuiEJNgQLvWdeHqczPOAcrYpFjEepBeKo7EQzY8M,994
3
3
  udata/__init__.py,sha256=SslifvQytly1ztvHCc4bdlP3Va1F5UV60hSJC6a_guk,101
4
- udata/api_fields.py,sha256=_CArcH447noYPKk-NDFDJBbXexRmChH90pKsFlXa4Lg,13324
4
+ udata/api_fields.py,sha256=zx-BPYajUyRKOOIFIebn-MFSrRIyi4O-sf97V7KjoOI,13461
5
5
  udata/app.py,sha256=6upwrImLaWrSYtsXPW1zH84_oRxp3B6XFuocMe2D6NU,7329
6
6
  udata/assets.py,sha256=aMa-MnAEXVSTavptSn2V8sUE6jL_N0MrYCQ6_QpsuHs,645
7
7
  udata/entrypoints.py,sha256=8bZUvZ8ICO3kZxa8xDUaen6YS_OAGNKHFvaD7d8BOk0,2687
@@ -10,7 +10,7 @@ udata/factories.py,sha256=6en2qdHHoR6rEvNEUeH_0-T-vR7x7GUBGgNEm9vuylE,492
10
10
  udata/i18n.py,sha256=E-JoY57Cv4vgPvChkWjpwZAbuYVI8e6BO6raeu_3_Pw,8352
11
11
  udata/mail.py,sha256=dAMcbEtk5e54alpQezvF5adDrRPgdaT36QEdHD_5v50,2145
12
12
  udata/rdf.py,sha256=oIn-7r38o-HHHvDAVuNHBpOp5fVelXZiEj4cwiEOCqY,14069
13
- udata/routing.py,sha256=Qhpf5p97fs1SoJXtDctc1FPk0MeOKLn_C0Z1dP4ZNJA,7234
13
+ udata/routing.py,sha256=Z4LFi78Rt-22MKEeqcvauA4_a0uBbnhKgCjn1V7TNYs,7274
14
14
  udata/sentry.py,sha256=KiZz0PpmYpZMvykH9UAbHpF4xBY0Q-8DeiEbXEHDUdw,2683
15
15
  udata/settings.py,sha256=0D3dmI3bIoGkheggfuOy8PPLbpgw5voWrcTMHyKl14U,17431
16
16
  udata/sitemap.py,sha256=pjtR2lU3gRHvK8l1Lw8B9wrqMMTYC5adUfFh0pUp_Q4,977
@@ -24,7 +24,7 @@ udata/worker.py,sha256=K-Wafye5-uXP4kQlffRKws2J9YbJ6m6n2QjcVsY8Nsg,118
24
24
  udata/wsgi.py,sha256=P7AJvZ5JqY4uRSBOzaFiBniChWIU9RVQ-Y0PN4vCCMY,77
25
25
  udata/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  udata/admin/views.py,sha256=wMlpnC1aINW-6JDk6-kQXhcTYBZH-5wajEuWzVDcIKA,331
27
- udata/api/__init__.py,sha256=RhgO7r6ROJzhEybCDmtHRwIiUpE-LjEIUr7dRmNdSeg,11429
27
+ udata/api/__init__.py,sha256=L-A5OsJbsfxyM67NnekSPHvsHHTuPaAXqtzHJrD3W2s,11471
28
28
  udata/api/commands.py,sha256=oK2p1VdUvULDdYuvYYpYvY_bdkPJy-KfROfoX71oOuA,3277
29
29
  udata/api/errors.py,sha256=Sy_f3WVrNTUPZjCOogIVgocDdUjnKz149KDi4mMA_Lg,240
30
30
  udata/api/fields.py,sha256=l-Fa27-easR86qgof2bk130jq1N1pNUgGmQzok1UI3Q,3094
@@ -161,6 +161,10 @@ udata/core/post/models.py,sha256=KYx3PiheMYk8z-LqkfJ80hewrYK7lDpGMa1uUP00Ats,190
161
161
  udata/core/post/permissions.py,sha256=uofU0TehhOGYyUoRXf3wuy816_D3xwMmaJbDvV336sw,83
162
162
  udata/core/post/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
163
  udata/core/post/tests/test_api.py,sha256=LSJQQDUtUVdpwZNpnJaX3yNQYyjkjTTyO7mHnR5DR_I,3948
164
+ udata/core/reports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
+ udata/core/reports/api.py,sha256=36ec56wkoGRk-3tWBNQl1OcyZF5yaIU5HfgUAz0cyAk,1355
166
+ udata/core/reports/constants.py,sha256=9cuwHv2dS_OONRB6MTO3y8lCwJmg1fELAqWJheBdqb8,843
167
+ udata/core/reports/models.py,sha256=itVsmi90wcVWgSJm-U96QfMiju2ZDoMkDtNxKQqw3r0,1881
164
168
  udata/core/reuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
169
  udata/core/reuse/activities.py,sha256=rdl_CR3RJPBMonsHYmPnPVDvCYozNdXN2H1ILrTItNQ,1417
166
170
  udata/core/reuse/api.py,sha256=72oJxmwziqvuFhxcuXy-5ckhQo39t65hp4eqvSqbQ6o,10237
@@ -343,7 +347,7 @@ udata/migrations/2024-01-29-fix-reuse-and-dataset-with-private-None.py,sha256=17
343
347
  udata/migrations/2024-03-22-migrate-activity-kwargs-to-extras.py,sha256=n5-udd1IdaD-e3q5cZx9nC4uMUSyJyT1TkI6I4gFgh0,400
344
348
  udata/migrations/2024-06-11-fix-reuse-datasets-references.py,sha256=qeJMoOpW46AA80Eoh5Br5a-E6ol6O-eqgwFWJt5XqF0,786
345
349
  udata/migrations/__init__.py,sha256=3YP8ppVG5Jx_u6fWJ099X6m3JDYsbd_wetpu4arl6_U,10882
346
- udata/models/__init__.py,sha256=RNv3-9A3ARWgKYYBJv-lJNvakPR3JLiuZ6722-CO6Kc,1288
350
+ udata/models/__init__.py,sha256=WTCK3-IW3HUTXRamHm35eiMnsSVA0AEgFT2K68QmfIo,1336
347
351
  udata/mongo/__init__.py,sha256=_ubmmhJuo6_fpuoMPEAat9Pv-5K_8rDbUuXmhe62zvU,1419
348
352
  udata/mongo/badges_field.py,sha256=NnHA6OT40UysQzO3qnxiDNLR-SCj19KlqD1c-p1DP2Q,984
349
353
  udata/mongo/datetime_fields.py,sha256=f3Q4LYa9pKRdB2W2yZVFIuIqd7_ELim1djr6xjPhEZg,1932
@@ -418,8 +422,8 @@ udata/static/admin.css,sha256=RC7GvbVK8c5wDuELPeVdQpy3ab7HbHl1T4hUo5n-NVk,185167
418
422
  udata/static/admin.css.map,sha256=tUhFfsJUK3RrWCih9gUkf-Ywccuztxf4tqvXcN6zP3Y,626542
419
423
  udata/static/admin.js,sha256=5aUMi0yODaA3S72Lx2EfU02rGI1Oq_Y3pkVX4eeTHwc,1323682
420
424
  udata/static/admin.js.map,sha256=kZIUAQXjIu-wXYkBsstAAANom2YTUF9foCLSmHbSKjw,8502212
421
- udata/static/common.js,sha256=hEYMeHMi8xkTJQVmcrzFIl1TWikBiZpF15yPxHvj6NE,2252
422
- udata/static/common.js.map,sha256=d1tp8ldEiFYyIO93ZJYE4nJ3sdZRQR2UmSkwiKNgMs8,14137
425
+ udata/static/common.js,sha256=k-zMXXEOeOzwpk6DK1_kmpPB_6YLFhnHP_kjxQguuZU,2252
426
+ udata/static/common.js.map,sha256=ezKOClw7EY0nuyE8V2WYXknFlcAmVZwgDK6ajmvtRPw,14137
423
427
  udata/static/fontawesome-webfont.eot,sha256=e_yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk,165742
424
428
  udata/static/fontawesome-webfont.svg,sha256=rWFXkmwWIrpOHQPUePFUE2hSS_xG9R5C_g2UX37zI-Q,444379
425
429
  udata/static/fontawesome-webfont.ttf,sha256=qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg,165548
@@ -438,24 +442,24 @@ udata/static/chunks/1.ff8196d42cab0f031d3f.js,sha256=RoTq8mBpF9zhhmu5d0W6RJEVrv4
438
442
  udata/static/chunks/1.ff8196d42cab0f031d3f.js.map,sha256=wmDYu41OXVox5j-pSTRNBX6jfse9NODaSm1WVQxEzVw,1740240
439
443
  udata/static/chunks/10.e97ea231893dc435d6b5.js,sha256=APxVLHqIJpn5y4rgAcYe-kj2m1_YVKRcHQKYyoOhvDo,416268
440
444
  udata/static/chunks/10.e97ea231893dc435d6b5.js.map,sha256=ImT6Ak-obTIr1giuRa_B0GqYLxVK-k8VqdUInvIOo48,2742986
441
- udata/static/chunks/11.ae54612e36c6d46f85db.js,sha256=edM33scLmOlat4CPze7eP7xXezTaVwPcEKlGz8rCJLI,395591
442
- udata/static/chunks/11.ae54612e36c6d46f85db.js.map,sha256=rJz027D86BPKfqTjoaeAyGv4p61IpZ9PjXD-Si0lyF4,2269401
445
+ udata/static/chunks/11.7266fef2dddc1db403d9.js,sha256=cIJhI5xmNKA6Nl5T7xn2rxxCmqYeuIZ5b5qt9ilLEtQ,395591
446
+ udata/static/chunks/11.7266fef2dddc1db403d9.js.map,sha256=XOjiAWTnqY2bFlRm5Mnnaf-xUjbxNcGoF7aHwNqerao,2269401
443
447
  udata/static/chunks/12.59f035a9438e2baf5126.js,sha256=o6krxp00FhozAq8cFIsn7SARMqSSh-yBvjHrGnrdWG4,420875
444
448
  udata/static/chunks/12.59f035a9438e2baf5126.js.map,sha256=ZUBD8z2T7thgND62On62lLICfQFmbNli10Q0OoKb3k8,2441176
445
- udata/static/chunks/13.d8ccb992a49875966313.js,sha256=8nYBWHOXPlI8J3yBl5aDWzI2jXFf5JXF0GZsq9wLQ-M,420344
446
- udata/static/chunks/13.d8ccb992a49875966313.js.map,sha256=QkY2auuLC-qzYPNH9m7bEZtmpTMoEO8HdrQ_s2Fhcl0,2429638
449
+ udata/static/chunks/13.91b177d7d531fd55cf5d.js,sha256=8iq8kts4z4ue0xA0CDWTHOItgtzHFEssI7PYQ6R-5hU,420344
450
+ udata/static/chunks/13.91b177d7d531fd55cf5d.js.map,sha256=amnIm8RZ0WAJ5ln8iPzvzjx37YyFRZjJQJkTl5nm-5U,2429638
447
451
  udata/static/chunks/14.e64890872b31c55fcdf7.js,sha256=jurhJWV1koK5gereJcNvxVJWt5Au0DhMkfH15ZYs51c,290008
448
452
  udata/static/chunks/14.e64890872b31c55fcdf7.js.map,sha256=b6a7MZrOAPkaJNbh7XYfkDwY4gajF2QlSHVDxOodZIg,1635397
449
453
  udata/static/chunks/15.92b2cef3032ea35da04a.js,sha256=mjInN76Vh4ZdaAeLt9cdDC_KzosZ09oXORoQnIDCDZQ,228520
450
454
  udata/static/chunks/15.92b2cef3032ea35da04a.js.map,sha256=r8-Tpyg4JArOxM9tesc6kfmo9K4dMA4gKeHuJnAjQlc,1574560
451
- udata/static/chunks/16.4565605e68bab129a471.js,sha256=5ExeZJWD1UM4XZrwFypFUQwZ4zdx9ZOtVgNDyHO1jzw,236417
452
- udata/static/chunks/16.4565605e68bab129a471.js.map,sha256=TYtvlUXN3A5h83Edvr7ias_UqTZ1HdJKPvwQn26p9H4,1288679
455
+ udata/static/chunks/16.e866757bab9f6b0a3f1b.js,sha256=XZf7xlZ7qeSkCq7VWFnFk1mxpYomt1KMOji_TvjOKPc,236417
456
+ udata/static/chunks/16.e866757bab9f6b0a3f1b.js.map,sha256=8FmJIIsWLGDNO6q4fgfKTDORJeULTjgEOGvQkw1naYE,1288679
453
457
  udata/static/chunks/17.15ecbcf8f0b2968689e8.js,sha256=A5fGRVBlSJ4eixr7jm3Cokp5i05LDHuKsy7GklSWpUs,134506
454
458
  udata/static/chunks/17.15ecbcf8f0b2968689e8.js.map,sha256=D67oY0dVnoJm0wR0a5dAJ6FzxLfctNO8vJIZ2JpSWHI,680755
455
459
  udata/static/chunks/18.1922fd0b2b7fad122991.js,sha256=IgbKp4KikHLXQn85lKGL1OxIiptOJtwP7czdrwFeFIA,49905
456
460
  udata/static/chunks/18.1922fd0b2b7fad122991.js.map,sha256=JRHMKfamhp3uB3Em9KkcBGmtFCvtx4_x21p-zbMtMZY,276196
457
- udata/static/chunks/19.f993a75d5bfe2382548d.js,sha256=2geAfrdRxFJtt0B_8WritRDrHEVKPRaeRwPxjuuxsTU,203488
458
- udata/static/chunks/19.f993a75d5bfe2382548d.js.map,sha256=J_peeA37NoCXGo3G8oJXBijDjeT8Az8sdFrEziHa8g0,1080613
461
+ udata/static/chunks/19.619b83ac597516dcd03e.js,sha256=BYAGmQGlRNW0LuXr6bX1yYWLPszRJJ_p08TyTu0WSEY,203488
462
+ udata/static/chunks/19.619b83ac597516dcd03e.js.map,sha256=pe7LzyYPKFSm_mKzOOzkk-bwnrEmKLKAAkEISgMhMVQ,1080613
459
463
  udata/static/chunks/2.614b3e73b072982fd9b1.js,sha256=2AjukB7x12ryFJdyKVLLyF71S3RZfQAZPhNyDQK6AD8,276355
460
464
  udata/static/chunks/2.614b3e73b072982fd9b1.js.map,sha256=z4W49Eal5baYh5brXpzITxRK6c1dl-3GmovsB95Vk2c,1554832
461
465
  udata/static/chunks/20.14a92e5c503f74ff40df.js,sha256=5KSbcgzviAJ3tpRfRLPy6JC3zqE50dLijdLjaf9F59s,36688
@@ -486,16 +490,16 @@ udata/static/chunks/33.70f8e7b1964892a24e67.js,sha256=CP8Hb0M4O6jXd5s8_TI1BhyKB4
486
490
  udata/static/chunks/33.70f8e7b1964892a24e67.js.map,sha256=0ejAXya7tMgkLGrybenkpOBCp5PpkIOy_WexGpcFu5k,709305
487
491
  udata/static/chunks/4.95e6a070a0eb2ed08fdd.js,sha256=iYmVG0YYezPCo9myBP4N_Gqe4JGLpgpaVN7cGYhLYQQ,608399
488
492
  udata/static/chunks/4.95e6a070a0eb2ed08fdd.js.map,sha256=pjkKpbqGpGS0sTdZScl66M9D9SUyYoRrcJ6up5C4ww4,3720482
489
- udata/static/chunks/5.cc2e7bf65ef32f9c8604.js,sha256=Bb2iPHV9p-xvCuDce5dw4BcZsQ8LnHrN9IqGok-rQSw,578664
490
- udata/static/chunks/5.cc2e7bf65ef32f9c8604.js.map,sha256=8AwovP_yn4dstBLjx9keWGlsiD5E-rp7Mr8JRxHdM8w,3583838
491
- udata/static/chunks/6.cad898a38692eda28965.js,sha256=Q8qA27SwC4LvCPg_mLBjdG-12KkQS_OAfqZaf8yl0-o,609115
492
- udata/static/chunks/6.cad898a38692eda28965.js.map,sha256=bAYJQbU5ZuZWFUc6ccFz4hMShOHYcc4C9Ul-TSed7eQ,3780096
493
+ udata/static/chunks/5.48417db6b33328fa9d6a.js,sha256=FKunM7wvTYfmlO85dwtaalrufR-1vvURSdy_ASUo7g0,578664
494
+ udata/static/chunks/5.48417db6b33328fa9d6a.js.map,sha256=EgT-YA3TtPA70fAVPItsgJqqLlgyad16Lu6eEYFlxwY,3583838
495
+ udata/static/chunks/6.f84539bd4c419b36cc19.js,sha256=jpjwKBv1jqOKwFqxF1mr5qUBDvmTCfRhKhqWfgRjnKM,609115
496
+ udata/static/chunks/6.f84539bd4c419b36cc19.js.map,sha256=0jcpGDle1aCYri5HDzgl_N1mzOxgakJ1KNBmiW4X6jU,3780096
493
497
  udata/static/chunks/7.e2106342e94ee09393b1.js,sha256=0MEhAPH21_pZfrBAKZFj3Bhhkd78Va7I13RB-QBTUv0,153001
494
498
  udata/static/chunks/7.e2106342e94ee09393b1.js.map,sha256=w4I9dZ_MLDY5YlZz2FASL_0EG1QmfSQQs6C-BASN_pw,792268
495
499
  udata/static/chunks/8.17d1afb591ad1495bd03.js,sha256=ITR8W0odBF4Qc_sYSFSwDn_ROI0SheErQOFCSKxUlig,418247
496
500
  udata/static/chunks/8.17d1afb591ad1495bd03.js.map,sha256=oW0NCN77hHRjGt7zPbIGVG1KXZ9_IZxt-dK_jGlp6ek,2753135
497
- udata/static/chunks/9.d5b992e9ef51921aeb57.js,sha256=9SbFIVW1IhyIBm_qxIBuuCNi0cv64sNuLddQheglN5I,222853
498
- udata/static/chunks/9.d5b992e9ef51921aeb57.js.map,sha256=CKUAb5SYfBEMnHtnlcAMO1xnVx8opHQWdbKCzv5GgEE,1205437
501
+ udata/static/chunks/9.07503e7f7ec02919f696.js,sha256=Urnvxi4D2sEnjYV7dhK7NWraENks2ik3UxkNGX1ngj8,222853
502
+ udata/static/chunks/9.07503e7f7ec02919f696.js.map,sha256=6XDnt2rs-gVgrwU7yJZt7iN_Ic_sO_DGR6ZkLwl9DX8,1205437
499
503
  udata/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
500
504
  udata/storage/s3.py,sha256=Lki8iL9lkZz1fnHuQLpkrvjL2SWkvamKL6aortiEkj4,1573
501
505
  udata/templates/admin.html,sha256=RfX03rUOW7NIlgMYNhFfx0pL-p2j8BtAKvEFUadaIIs,787
@@ -601,6 +605,7 @@ udata/tests/api/test_fields.py,sha256=OW85Z5MES5HeWOpapeem8OvR1cIcrqW-xMWpdZO4LZ
601
605
  udata/tests/api/test_follow_api.py,sha256=0h54P_Dfbo07u6tg0Rbai1WWgWb19ZLN2HGv4oLCWfg,3383
602
606
  udata/tests/api/test_me_api.py,sha256=8OthqVYQKZrFoGuJ7zAvoLJx1IclPNzPdD5Tnzmh3rM,14163
603
607
  udata/tests/api/test_organizations_api.py,sha256=buE1KdGIoJxfsj-ofz5CkMtgnARi38bXWR1jgPRkMzo,35732
608
+ udata/tests/api/test_reports_api.py,sha256=rqwgbOn8hpQEo-KFdSDxxjmLjtFFkleyvmLjBVTYsDc,3463
604
609
  udata/tests/api/test_reuses_api.py,sha256=GSoZ6SBRdMg6o0xKSQWtCSfvzqz_vZxERU567Rq1_GY,17009
605
610
  udata/tests/api/test_swagger.py,sha256=tLg452rCD5Q0AgFXOVZKMM6jGiWwC5diX5PxbdYni0o,760
606
611
  udata/tests/api/test_tags_api.py,sha256=xSIx_x5gqKz6BJCXKEsTqA_CR4BF1nG5NxEyfp9dy0o,2579
@@ -676,7 +681,7 @@ udata/tests/workers/test_jobs_commands.py,sha256=0Ru2N-uxgWAgYoADxFjLgyburD5OdBL
676
681
  udata/tests/workers/test_tasks_routing.py,sha256=4cBChvphj23rbLIu4dCTYYiM5OfTEUZKlXuNnyBCnWA,2260
677
682
  udata/tests/workers/test_workers_api.py,sha256=8MtfAjrPL1TUfEBfVjrYfm_4rft4DfBlcamiVvMCJAo,8863
678
683
  udata/tests/workers/test_workers_helpers.py,sha256=EVTHL-KhwbwD8snfN8HdK5o-wMXYkl2oXgtl990fQxE,647
679
- udata/translations/udata.pot,sha256=COdV87EQCmi-xh4woWqErwbnzlW9a5a2xo-6UVkPDZs,36594
684
+ udata/translations/udata.pot,sha256=fNgOTbNruk8ED7vj5hIuy--LunZsIq8bTm4roTJ41sw,37014
680
685
  udata/translations/ar/LC_MESSAGES/udata.mo,sha256=5WY0IWxqGknbC1o3BBRwTRg81ATBT9wLJHb3dK3piek,12665
681
686
  udata/translations/ar/LC_MESSAGES/udata.po,sha256=VjT4qh3z_xO1Sh0EjVW6Ffms17flM52btum1CXGXVIU,42012
682
687
  udata/translations/de/LC_MESSAGES/udata.mo,sha256=XPDFo3LbWnAUxIhtN0Y__aUMfKX6rKM4IQSlasUUhTE,16061
@@ -691,9 +696,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=iAUNwbI8ESi8MHkE3ZCYCSIXfFC27z
691
696
  udata/translations/pt/LC_MESSAGES/udata.po,sha256=uTmbHfzyFWrVXUkKSuNFzbGpX7EkUuBdD8fE04d3v5g,44572
692
697
  udata/translations/sr/LC_MESSAGES/udata.mo,sha256=1MbQHvKKNUwzMBWLNsH1qqBehO3aILhQiMhi5u1bY8E,28553
693
698
  udata/translations/sr/LC_MESSAGES/udata.po,sha256=AAryt27Gbkhk7FntCCU8_e7HSXATfsAQhwFOFC8CAj0,51152
694
- udata-9.0.1.dev29696.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
695
- udata-9.0.1.dev29696.dist-info/METADATA,sha256=7FzsYbr-nRy6TOozV0-1HW9Hm3WF03byQS1SSR4tfow,125343
696
- udata-9.0.1.dev29696.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
697
- udata-9.0.1.dev29696.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
698
- udata-9.0.1.dev29696.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
699
- udata-9.0.1.dev29696.dist-info/RECORD,,
699
+ udata-9.0.1.dev29728.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
700
+ udata-9.0.1.dev29728.dist-info/METADATA,sha256=qFFB1G5TPGoXZxnLj_6xSut413YtnxQaC8nTCj9OJDQ,125526
701
+ udata-9.0.1.dev29728.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
702
+ udata-9.0.1.dev29728.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
703
+ udata-9.0.1.dev29728.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
704
+ udata-9.0.1.dev29728.dist-info/RECORD,,