udata 9.1.4.dev31123__py2.py3-none-any.whl → 9.1.4.dev31143__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 (36) hide show
  1. udata/api_fields.py +119 -26
  2. udata/core/badges/models.py +7 -1
  3. udata/core/metrics/models.py +4 -1
  4. udata/core/organization/api.py +1 -2
  5. udata/core/owned.py +4 -2
  6. udata/core/post/api.py +2 -2
  7. udata/core/reuse/api.py +32 -25
  8. udata/core/reuse/api_fields.py +2 -101
  9. udata/core/reuse/apiv2.py +4 -4
  10. udata/core/reuse/models.py +98 -16
  11. udata/core/site/api.py +2 -3
  12. udata/core/topic/api.py +2 -2
  13. udata/core/topic/apiv2.py +1 -2
  14. udata/core/user/api.py +2 -3
  15. udata/features/transfer/api.py +1 -2
  16. udata/mongo/datetime_fields.py +11 -4
  17. udata/mongo/document.py +2 -0
  18. udata/mongo/taglist_field.py +26 -0
  19. udata/static/admin.js +36 -36
  20. udata/static/admin.js.map +1 -1
  21. udata/static/chunks/{12.5b900cac4417e10ef3a0.js → 12.576e63b7a990f8eab784.js} +2 -2
  22. udata/static/chunks/12.576e63b7a990f8eab784.js.map +1 -0
  23. udata/static/chunks/{28.1759a7f57d526e6db574.js → 28.1ef31a46255dc2bf56d1.js} +2 -2
  24. udata/static/chunks/28.1ef31a46255dc2bf56d1.js.map +1 -0
  25. udata/static/common.js +1 -1
  26. udata/static/common.js.map +1 -1
  27. udata/tests/api/test_reuses_api.py +49 -0
  28. {udata-9.1.4.dev31123.dist-info → udata-9.1.4.dev31143.dist-info}/METADATA +2 -1
  29. {udata-9.1.4.dev31123.dist-info → udata-9.1.4.dev31143.dist-info}/RECORD +33 -34
  30. udata/core/reuse/forms.py +0 -45
  31. udata/static/chunks/12.5b900cac4417e10ef3a0.js.map +0 -1
  32. udata/static/chunks/28.1759a7f57d526e6db574.js.map +0 -1
  33. {udata-9.1.4.dev31123.dist-info → udata-9.1.4.dev31143.dist-info}/LICENSE +0 -0
  34. {udata-9.1.4.dev31123.dist-info → udata-9.1.4.dev31143.dist-info}/WHEEL +0 -0
  35. {udata-9.1.4.dev31123.dist-info → udata-9.1.4.dev31143.dist-info}/entry_points.txt +0 -0
  36. {udata-9.1.4.dev31123.dist-info → udata-9.1.4.dev31143.dist-info}/top_level.txt +0 -0
udata/static/common.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e){function __webpack_require__(a){if(c[a])return c[a].exports;var f=c[a]={exports:{},id:a,loaded:!1};return e[a].call(f.exports,f,f.exports,__webpack_require__),f.loaded=!0,f.exports}var a=window.webpackJsonp;window.webpackJsonp=function(r,b){for(var t,d,_=0,n=[];_<r.length;_++)d=r[_],f[d]&&n.push.apply(n,f[d]),f[d]=0;for(t in b){var i=b[t];switch(typeof i){case"object":e[t]=function(a){var c=a.slice(1),f=a[0];return function(a,r,b){e[f].apply(this,[a,r,b].concat(c))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(a&&a(r,b);n.length;)n.shift().call(null,__webpack_require__);if(b[0])return c[0]=0,__webpack_require__(0)};var c={},f={31:0};__webpack_require__.e=function(e,a){if(0===f[e])return a.call(null,__webpack_require__);if(void 0!==f[e])f[e].push(a);else{f[e]=[a];var c=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.src=__webpack_require__.p+"chunks/"+e+"."+{0:"8f152ff3f1e15e3d8778",1:"c53dfc91009cfdf4583b",2:"c6dba6a3f04d53321e86",3:"31f4515503a814e0e3a3",4:"3720aa269a60fa6d03b4",5:"d17ff266ecc1ad0331fb",6:"0db5d3ff22944de7edd5",7:"6ce1bc0456cf60b71a71",8:"292c6a157d71f0b21b6f",9:"8ad948dd393d38f07a7a",10:"c1c9496ebfc8949f3de2",11:"18f1cc16362b76373c40",12:"5b900cac4417e10ef3a0",13:"fd1ca1cf5b2c1854ed51",14:"42393a4d555321f07b8b",15:"7de380008f4ec6ea4b5b",16:"6727d8aca9393baa855c",17:"4687eae5e18d3049fe7b",18:"b7098bfe5401f75973fa",19:"2061dca8438f415029a3",20:"17e9e766625991aa0a7b",21:"2b48c7e5fe59775d5eb3",22:"2a919b7f6014457264e8",23:"3e0c3e2e54035b03f0cd",24:"90ea877940aa6e51aa05",25:"f58e4af656779957db54",26:"980f1773d9ad3068ab73",27:"d27b63112823e700bf20",28:"1759a7f57d526e6db574",29:"056b71a60b1ba45eb81b",30:"01f57358f352314e7df0",32:"81f86853bd2204d5f185",33:"c1ee77b51bb867f3d7cd"}[e]+".js",c.appendChild(r)}},__webpack_require__.m=e,__webpack_require__.c=c,__webpack_require__.p="/static/"}(function(e){for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a))switch(typeof e[a]){case"function":break;case"object":e[a]=function(a){var c=a.slice(1),f=e[a[0]];return function(e,a,r){f.apply(this,[e,a,r].concat(c))}}(e[a]);break;default:e[a]=e[e[a]]}return e}([]));
1
+ !function(e){function __webpack_require__(a){if(c[a])return c[a].exports;var f=c[a]={exports:{},id:a,loaded:!1};return e[a].call(f.exports,f,f.exports,__webpack_require__),f.loaded=!0,f.exports}var a=window.webpackJsonp;window.webpackJsonp=function(r,b){for(var t,d,_=0,n=[];_<r.length;_++)d=r[_],f[d]&&n.push.apply(n,f[d]),f[d]=0;for(t in b){var i=b[t];switch(typeof i){case"object":e[t]=function(a){var c=a.slice(1),f=a[0];return function(a,r,b){e[f].apply(this,[a,r,b].concat(c))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(a&&a(r,b);n.length;)n.shift().call(null,__webpack_require__);if(b[0])return c[0]=0,__webpack_require__(0)};var c={},f={31:0};__webpack_require__.e=function(e,a){if(0===f[e])return a.call(null,__webpack_require__);if(void 0!==f[e])f[e].push(a);else{f[e]=[a];var c=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.src=__webpack_require__.p+"chunks/"+e+"."+{0:"8f152ff3f1e15e3d8778",1:"c53dfc91009cfdf4583b",2:"c6dba6a3f04d53321e86",3:"31f4515503a814e0e3a3",4:"3720aa269a60fa6d03b4",5:"d17ff266ecc1ad0331fb",6:"0db5d3ff22944de7edd5",7:"6ce1bc0456cf60b71a71",8:"292c6a157d71f0b21b6f",9:"8ad948dd393d38f07a7a",10:"c1c9496ebfc8949f3de2",11:"18f1cc16362b76373c40",12:"576e63b7a990f8eab784",13:"fd1ca1cf5b2c1854ed51",14:"42393a4d555321f07b8b",15:"7de380008f4ec6ea4b5b",16:"6727d8aca9393baa855c",17:"4687eae5e18d3049fe7b",18:"b7098bfe5401f75973fa",19:"2061dca8438f415029a3",20:"17e9e766625991aa0a7b",21:"2b48c7e5fe59775d5eb3",22:"2a919b7f6014457264e8",23:"3e0c3e2e54035b03f0cd",24:"90ea877940aa6e51aa05",25:"f58e4af656779957db54",26:"980f1773d9ad3068ab73",27:"d27b63112823e700bf20",28:"1ef31a46255dc2bf56d1",29:"056b71a60b1ba45eb81b",30:"01f57358f352314e7df0",32:"92a026dcad120ccdf15f",33:"c1ee77b51bb867f3d7cd"}[e]+".js",c.appendChild(r)}},__webpack_require__.m=e,__webpack_require__.c=c,__webpack_require__.p="/static/"}(function(e){for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a))switch(typeof e[a]){case"function":break;case"object":e[a]=function(a){var c=a.slice(1),f=e[a[0]];return function(e,a,r){f.apply(this,[e,a,r].concat(c))}}(e[a]);break;default:e[a]=e[e[a]]}return e}([]));
2
2
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap c9c097f09cc6a2d3f2e7"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"8f152ff3f1e15e3d8778\",\"1\":\"c53dfc91009cfdf4583b\",\"2\":\"c6dba6a3f04d53321e86\",\"3\":\"31f4515503a814e0e3a3\",\"4\":\"3720aa269a60fa6d03b4\",\"5\":\"d17ff266ecc1ad0331fb\",\"6\":\"0db5d3ff22944de7edd5\",\"7\":\"6ce1bc0456cf60b71a71\",\"8\":\"292c6a157d71f0b21b6f\",\"9\":\"8ad948dd393d38f07a7a\",\"10\":\"c1c9496ebfc8949f3de2\",\"11\":\"18f1cc16362b76373c40\",\"12\":\"5b900cac4417e10ef3a0\",\"13\":\"fd1ca1cf5b2c1854ed51\",\"14\":\"42393a4d555321f07b8b\",\"15\":\"7de380008f4ec6ea4b5b\",\"16\":\"6727d8aca9393baa855c\",\"17\":\"4687eae5e18d3049fe7b\",\"18\":\"b7098bfe5401f75973fa\",\"19\":\"2061dca8438f415029a3\",\"20\":\"17e9e766625991aa0a7b\",\"21\":\"2b48c7e5fe59775d5eb3\",\"22\":\"2a919b7f6014457264e8\",\"23\":\"3e0c3e2e54035b03f0cd\",\"24\":\"90ea877940aa6e51aa05\",\"25\":\"f58e4af656779957db54\",\"26\":\"980f1773d9ad3068ab73\",\"27\":\"d27b63112823e700bf20\",\"28\":\"1759a7f57d526e6db574\",\"29\":\"056b71a60b1ba45eb81b\",\"30\":\"01f57358f352314e7df0\",\"32\":\"81f86853bd2204d5f185\",\"33\":\"c1ee77b51bb867f3d7cd\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"8f152ff3f1e15e3d8778\",\"1\":\"c53dfc91009cfdf4583b\",\"2\":\"c6dba6a3f04d53321e86\",\"3\":\"31f4515503a814e0e3a3\",\"4\":\"3720aa269a60fa6d03b4\",\"5\":\"d17ff266ecc1ad0331fb\",\"6\":\"0db5d3ff22944de7edd5\",\"7\":\"6ce1bc0456cf60b71a71\",\"8\":\"292c6a157d71f0b21b6f\",\"9\":\"8ad948dd393d38f07a7a\",\"10\":\"c1c9496ebfc8949f3de2\",\"11\":\"18f1cc16362b76373c40\",\"12\":\"5b900cac4417e10ef3a0\",\"13\":\"fd1ca1cf5b2c1854ed51\",\"14\":\"42393a4d555321f07b8b\",\"15\":\"7de380008f4ec6ea4b5b\",\"16\":\"6727d8aca9393baa855c\",\"17\":\"4687eae5e18d3049fe7b\",\"18\":\"b7098bfe5401f75973fa\",\"19\":\"2061dca8438f415029a3\",\"20\":\"17e9e766625991aa0a7b\",\"21\":\"2b48c7e5fe59775d5eb3\",\"22\":\"2a919b7f6014457264e8\",\"23\":\"3e0c3e2e54035b03f0cd\",\"24\":\"90ea877940aa6e51aa05\",\"25\":\"f58e4af656779957db54\",\"26\":\"980f1773d9ad3068ab73\",\"27\":\"d27b63112823e700bf20\",\"28\":\"1759a7f57d526e6db574\",\"29\":\"056b71a60b1ba45eb81b\",\"30\":\"01f57358f352314e7df0\",\"32\":\"81f86853bd2204d5f185\",\"33\":\"c1ee77b51bb867f3d7cd\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap c9c097f09cc6a2d3f2e7\n **/"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap ca380b10791e5e6eaa83"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"8f152ff3f1e15e3d8778\",\"1\":\"c53dfc91009cfdf4583b\",\"2\":\"c6dba6a3f04d53321e86\",\"3\":\"31f4515503a814e0e3a3\",\"4\":\"3720aa269a60fa6d03b4\",\"5\":\"d17ff266ecc1ad0331fb\",\"6\":\"0db5d3ff22944de7edd5\",\"7\":\"6ce1bc0456cf60b71a71\",\"8\":\"292c6a157d71f0b21b6f\",\"9\":\"8ad948dd393d38f07a7a\",\"10\":\"c1c9496ebfc8949f3de2\",\"11\":\"18f1cc16362b76373c40\",\"12\":\"576e63b7a990f8eab784\",\"13\":\"fd1ca1cf5b2c1854ed51\",\"14\":\"42393a4d555321f07b8b\",\"15\":\"7de380008f4ec6ea4b5b\",\"16\":\"6727d8aca9393baa855c\",\"17\":\"4687eae5e18d3049fe7b\",\"18\":\"b7098bfe5401f75973fa\",\"19\":\"2061dca8438f415029a3\",\"20\":\"17e9e766625991aa0a7b\",\"21\":\"2b48c7e5fe59775d5eb3\",\"22\":\"2a919b7f6014457264e8\",\"23\":\"3e0c3e2e54035b03f0cd\",\"24\":\"90ea877940aa6e51aa05\",\"25\":\"f58e4af656779957db54\",\"26\":\"980f1773d9ad3068ab73\",\"27\":\"d27b63112823e700bf20\",\"28\":\"1ef31a46255dc2bf56d1\",\"29\":\"056b71a60b1ba45eb81b\",\"30\":\"01f57358f352314e7df0\",\"32\":\"92a026dcad120ccdf15f\",\"33\":\"c1ee77b51bb867f3d7cd\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"8f152ff3f1e15e3d8778\",\"1\":\"c53dfc91009cfdf4583b\",\"2\":\"c6dba6a3f04d53321e86\",\"3\":\"31f4515503a814e0e3a3\",\"4\":\"3720aa269a60fa6d03b4\",\"5\":\"d17ff266ecc1ad0331fb\",\"6\":\"0db5d3ff22944de7edd5\",\"7\":\"6ce1bc0456cf60b71a71\",\"8\":\"292c6a157d71f0b21b6f\",\"9\":\"8ad948dd393d38f07a7a\",\"10\":\"c1c9496ebfc8949f3de2\",\"11\":\"18f1cc16362b76373c40\",\"12\":\"576e63b7a990f8eab784\",\"13\":\"fd1ca1cf5b2c1854ed51\",\"14\":\"42393a4d555321f07b8b\",\"15\":\"7de380008f4ec6ea4b5b\",\"16\":\"6727d8aca9393baa855c\",\"17\":\"4687eae5e18d3049fe7b\",\"18\":\"b7098bfe5401f75973fa\",\"19\":\"2061dca8438f415029a3\",\"20\":\"17e9e766625991aa0a7b\",\"21\":\"2b48c7e5fe59775d5eb3\",\"22\":\"2a919b7f6014457264e8\",\"23\":\"3e0c3e2e54035b03f0cd\",\"24\":\"90ea877940aa6e51aa05\",\"25\":\"f58e4af656779957db54\",\"26\":\"980f1773d9ad3068ab73\",\"27\":\"d27b63112823e700bf20\",\"28\":\"1ef31a46255dc2bf56d1\",\"29\":\"056b71a60b1ba45eb81b\",\"30\":\"01f57358f352314e7df0\",\"32\":\"92a026dcad120ccdf15f\",\"33\":\"c1ee77b51bb867f3d7cd\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap ca380b10791e5e6eaa83\n **/"],"sourceRoot":""}
@@ -36,6 +36,27 @@ class ReuseAPITest:
36
36
  assert200(response)
37
37
  assert len(response.json["data"]) == len(reuses)
38
38
 
39
+ def test_reuse_api_list_with_sorts(self, api):
40
+ ReuseFactory(title="A", created_at="2024-03-01")
41
+ ReuseFactory(title="B", metrics={"views": 42}, created_at="2024-02-01")
42
+ ReuseFactory(title="C", metrics={"views": 1337}, created_at="2024-05-01")
43
+ ReuseFactory(title="D", created_at="2024-04-01")
44
+
45
+ response = api.get(url_for("api.reuses", sort="views"))
46
+ assert200(response)
47
+
48
+ assert [reuse["title"] for reuse in response.json["data"]] == ["A", "D", "B", "C"]
49
+
50
+ response = api.get(url_for("api.reuses", sort="-views"))
51
+ assert200(response)
52
+
53
+ assert [reuse["title"] for reuse in response.json["data"]] == ["C", "B", "D", "A"]
54
+
55
+ response = api.get(url_for("api.reuses", sort="created"))
56
+ assert200(response)
57
+
58
+ assert [reuse["title"] for reuse in response.json["data"]] == ["B", "A", "D", "C"]
59
+
39
60
  def test_reuse_api_list_with_filters(self, api):
40
61
  """Should filters reuses results based on query filters"""
41
62
  owner = UserFactory()
@@ -162,6 +183,34 @@ class ReuseAPITest:
162
183
  assert Reuse.objects.count() == 1
163
184
  assert Reuse.objects.first().description == "new description"
164
185
 
186
+ def test_reuse_api_remove_org(self, api):
187
+ user = api.login()
188
+ reuse = ReuseFactory(owner=user)
189
+ data = reuse.to_dict()
190
+ data["organization"] = None
191
+ response = api.put(url_for("api.reuse", reuse=reuse), data)
192
+ assert200(response)
193
+ assert Reuse.objects.count() == 1
194
+ assert Reuse.objects.first().organization is None
195
+
196
+ def test_reuse_api_update_org_with_full_object(self, api):
197
+ """We can send the full org object (not only the ID) to update to an org"""
198
+ user = api.login()
199
+ reuse = ReuseFactory(owner=user)
200
+ member = Member(user=user, role="admin")
201
+ org = OrganizationFactory(members=[member])
202
+
203
+ data = reuse.to_dict()
204
+ data["owner"] = None
205
+ data["organization"] = org.to_dict()
206
+
207
+ response = api.put(url_for("api.reuse", reuse=reuse), data)
208
+ assert200(response)
209
+
210
+ assert Reuse.objects.count() == 1
211
+ assert Reuse.objects.first().owner is None
212
+ assert Reuse.objects.first().organization.id == org.id
213
+
165
214
  def test_reuse_api_update_deleted(self, api):
166
215
  """It should not update a deleted reuse from the API and raise 410"""
167
216
  api.login()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: udata
3
- Version: 9.1.4.dev31123
3
+ Version: 9.1.4.dev31143
4
4
  Summary: Open data portal
5
5
  Home-page: https://github.com/opendatateam/udata
6
6
  Author: Opendata Team
@@ -142,6 +142,7 @@ It is collectively taken care of by members of the
142
142
 
143
143
  - Fix many linting issues reported by ruff [#3118](https://github.com/opendatateam/udata/pull/3118)
144
144
  - Import the dataservice's organization from the fixtures [#3121](https://github.com/opendatateam/udata/pull/3121)
145
+ - Convert reuse to new API system [#3066](https://github.com/opendatateam/udata/pull/3066)
145
146
  - Fix circular import error [#3128](https://github.com/opendatateam/udata/pull/3128)
146
147
  - Add an option to specify the port when using `inv serve` [#3123](https://github.com/opendatateam/udata/pull/3123)
147
148
 
@@ -1,7 +1,7 @@
1
1
  tasks/__init__.py,sha256=jKwrWhJecOzLqFj2SjOt7yxA4HUB9mD1HMjkKpCnow0,8143
2
2
  tasks/helpers.py,sha256=70fS9tI_m0DTWmKx9Zl5-LG-nxdz_ZaPyvvsFkN2r48,1091
3
3
  udata/__init__.py,sha256=iIfkZcu-LQi4btmqKGrdK2F_zRkl8dI8cm8sFeYz9Fk,101
4
- udata/api_fields.py,sha256=dRA-rFVLuLvrtOJ6459Ow9Jz0n0l2WO3YRfLCdPHs6Q,15497
4
+ udata/api_fields.py,sha256=tnGdUBgfcGxbBBvZntXm59I9J4fI-x5kXK5iPMGnr1Y,19252
5
5
  udata/app.py,sha256=xjk2D3EgboYBpTwBwdIxd2klt2yMoWMyCrkry5fz0LA,7292
6
6
  udata/assets.py,sha256=H5Hrc2vnKM0IFLyWfLXmJ2Kj35w1i8W1D8Cgy8_cUj4,657
7
7
  udata/cors.py,sha256=QyhlcnkLo9SmJhgK3FRjLcD5YC-03bU514UVMAHfbSc,2995
@@ -54,7 +54,7 @@ udata/commands/worker.py,sha256=bjXQGCwkbZxkcxLMPA2Lr0nkNjXLpGNDMkkQXjwBLPI,3976
54
54
  udata/commands/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
55
  udata/commands/tests/test_fixtures.py,sha256=kFwqWA3Ha0mnCR5EE5aPz6jv3hfPheuwOMYkOvvBKyU,4120
56
56
  udata/core/__init__.py,sha256=O7C9WWCXiLWnWPnPbFRszWhOmvRQiI4gD-5qkWvPGRo,385
57
- udata/core/owned.py,sha256=xcIg9fNndowuLs7BEkuxAsEdf6JApomU_Gl6L-SgTJI,4515
57
+ udata/core/owned.py,sha256=UEg5tp-ZunzC2avCdholpqibDIUZgFBsXS7BEcdnBy0,4567
58
58
  udata/core/activity/__init__.py,sha256=OaiFyq7HB4xL4SuMPD1N8IFNpntwx9ZayVzelciOieI,298
59
59
  udata/core/activity/api.py,sha256=blVYf3unQbkYbm8FY7jv0w7_W52Frghmj2vYATh9Tsc,3445
60
60
  udata/core/activity/models.py,sha256=Ln9YUsdCBMFmUlw5GA2gIJ50sMorMFzZGo8u8sy7pIE,2072
@@ -66,7 +66,7 @@ udata/core/badges/commands.py,sha256=J6dKsoZmCbWM3HHOktPt-AHoMj-AhNPL0jxiV4yVlgw
66
66
  udata/core/badges/factories.py,sha256=rDQC28fKLtYA6l69EqiyOQyN4C2jVj87EdKBEo4sYsw,297
67
67
  udata/core/badges/fields.py,sha256=I_6APmd8AElTnzqCUa1rj0YR9IP3JgYd8lVtWScsghI,232
68
68
  udata/core/badges/forms.py,sha256=SgaCPo9BHo8BP5zJ5zZj8cKPIuezh4eKiM1fu6su_LY,533
69
- udata/core/badges/models.py,sha256=QZGdfPJGqXWILMNWv3b1X4WJDLUHLiJVKj9GDct0cgk,2919
69
+ udata/core/badges/models.py,sha256=S1YGrDZrp2FKrEPcfST9U9O3lzgGbu-T16iJZCl_PJo,3107
70
70
  udata/core/badges/permissions.py,sha256=yY8vqonNJbQl4tUqpsJ-zhQqAMET6SGN37odrl3b2yI,550
71
71
  udata/core/badges/signals.py,sha256=gD68zbdL-mM0epJp8MbkBhqcgqKd2_U-pEEUpwoII7w,237
72
72
  udata/core/badges/tasks.py,sha256=gkp3gfXGb8-uqpb9U9P2aPz2Eb_g3Lol0K5IRsaJ2yg,432
@@ -132,12 +132,12 @@ udata/core/jobs/forms.py,sha256=B-B6jXHZsYV-PWAkD8DLoOlh6trv4l1hGZ4HOPm-PD4,1495
132
132
  udata/core/jobs/models.py,sha256=xK8T3FCmhtERNbZmh1Tq_ZTO6vojM172tTc0oplNoQ0,1358
133
133
  udata/core/metrics/__init__.py,sha256=CB0MhZqNe4gKLBO-6zoGisXK7FtavxWx_Kkkle-INrc,398
134
134
  udata/core/metrics/commands.py,sha256=p9KlEcQBpjCGuU733jtEMRPxwq0yt1FLdwIYeDgAjks,5132
135
- udata/core/metrics/models.py,sha256=ISJNod02EjL9EymJZzLn-V0QK53hOZZeKu07zCUOWlA,290
135
+ udata/core/metrics/models.py,sha256=17EDq6GnCI_splm0K_Y12vj5UKwsA6VglykjzQISp00,328
136
136
  udata/core/metrics/signals.py,sha256=9mdJW__gR2GJT3huBr6HN2SDhKYJRgNbW9dnh48cAnU,176
137
137
  udata/core/metrics/tasks.py,sha256=Z6821OgupmDCN7Hj3esdb_udZbc1Haw7YpM48ytMIs4,797
138
138
  udata/core/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  udata/core/organization/activities.py,sha256=NY9pDzOVcdo2HZ-ax77lioiDGUZ8jpUguSLt_824saQ,1133
140
- udata/core/organization/api.py,sha256=a8zGiLz4DE2tfbJFBGJqm8aRdEFWafUoql-yOajZDeY,17418
140
+ udata/core/organization/api.py,sha256=K9TIBO-wy75ZbWFKo55rp5NlpjT9mNN-Zg2hO8h2BzE,17374
141
141
  udata/core/organization/api_fields.py,sha256=eE8Zswe01entlHoTTkbNkHTzm6N4THtv6Xhp9n2jj1Q,7193
142
142
  udata/core/organization/apiv2.py,sha256=1HQRQNu8r5dKPOGdkQyYfn7romhOoZydd4ZVUA0tQIk,3169
143
143
  udata/core/organization/commands.py,sha256=DsRAtFDZvTciYNsUWumQWdn0jnNmKW-PwfIHUUZoBb8,1591
@@ -154,7 +154,7 @@ udata/core/organization/search.py,sha256=Oie3BvGdyYTtiC8noJerlfDg5glMEk7acRQz7K5
154
154
  udata/core/organization/signals.py,sha256=Ft1MBU9S41uxFN-rUrKHhiwedR1OYGv-ncuroKg8orY,488
155
155
  udata/core/organization/tasks.py,sha256=2Pd9ixeKNd7BGxBHrHYbR9AelhqkflX3ocnGgtoa8Uc,5641
156
156
  udata/core/post/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
- udata/core/post/api.py,sha256=ECEKpb9mwlJ2HU17pwF4QHqKuHJwIhhL6cHHXUlOhY0,5465
157
+ udata/core/post/api.py,sha256=Wz7UUl22iwqKYAPS23rYocOIUA7-cXUCr1oat5rRnvw,5463
158
158
  udata/core/post/constants.py,sha256=W-xjOTv0lorD-RCV0YGtK0cT_RwgYmfrC8Ff6ywH7bM,215
159
159
  udata/core/post/factories.py,sha256=lcFe3zIadG7bc1jsydkOT7GfQX53V0x09Flpclyl6gI,619
160
160
  udata/core/post/forms.py,sha256=gY4HhteFkZr3u4EoQ5QNEHMOTtNNiEKHyehVXKYcm3Y,963
@@ -168,21 +168,20 @@ udata/core/reports/constants.py,sha256=LRZSX3unyqZeB4yQjK3ws_hGbJcXYk4bu1Rhnhi5D
168
168
  udata/core/reports/models.py,sha256=AsW5p2ZIdR4c6vNzglEN7MX03It-t9u7ktOsVZqvzSs,2702
169
169
  udata/core/reuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
170
  udata/core/reuse/activities.py,sha256=mAdHhqqpUF5zSh4e5AEo0J7alc3RflTbudDaKOzyTQw,1406
171
- udata/core/reuse/api.py,sha256=KjxcP1RdARFgRRJotp4pAwClmdLdH4JhhyjYmRzJ_y4,10232
172
- udata/core/reuse/api_fields.py,sha256=KLzXWWWAgtk7KsvUdBTc45L_rc465PO0c7P2e0Aq1hQ,5514
173
- udata/core/reuse/apiv2.py,sha256=nl2QgkhXOdqsBoQxuKeJDIxqXu3neK-b5WYzw0grtas,825
171
+ udata/core/reuse/api.py,sha256=jSBrkDuGoC8ZJhNkEjeurgccEBiu53d_fKkJ7b78D74,10468
172
+ udata/core/reuse/api_fields.py,sha256=c61Gl56UjiBpXS0Nbvcoi_QHdUmhnBtqWm6nNHRYKyc,1232
173
+ udata/core/reuse/apiv2.py,sha256=nZe-v8713aXKuv2B578NdxfrIckjbxhS3zUXAKSIKTI,835
174
174
  udata/core/reuse/constants.py,sha256=JgDBrjOKSt9q0auv9rjzbGsch83H-Oi8YXAKeI5hO4o,1215
175
175
  udata/core/reuse/csv.py,sha256=4TcQbk4kWN_HbnpEUfgfW9_x7ZqNDk5s4YuJ839p3EE,896
176
176
  udata/core/reuse/factories.py,sha256=GrQqYTIvwQrwkvJrbTr38-2faFW_PC99gn3yOVpgFec,850
177
- udata/core/reuse/forms.py,sha256=Fv2XfHt-zP7WpC8Z8qTlXFRlx8HHEd8nU28lUEA5MXk,1836
178
177
  udata/core/reuse/metrics.py,sha256=sVh7BlW3OKRvFDHFyD4pPUV91jOOhj8qeWbBkLPn5Gg,176
179
- udata/core/reuse/models.py,sha256=3KSmNSOPuFRSJclBCxoXo9hg7DXIZTqZLRy5DepHA9Y,5861
178
+ udata/core/reuse/models.py,sha256=FunEmVU-IweKBueV0UU9bc_ktIhefHYOfL5jUVF6KQk,7953
180
179
  udata/core/reuse/permissions.py,sha256=j-ancS7gvLl5vJu0TNYqpYD-2So-UzoDE4IHLxRoMGg,621
181
180
  udata/core/reuse/search.py,sha256=NkCRE8mGBdmlau0S9SsNPG0_zvB7MMNws64HGsq4yWM,3056
182
181
  udata/core/reuse/signals.py,sha256=nDrEUpYKN0AdYiEbrR0z3nzXzjaRcD8SAMutwIDsQPM,155
183
182
  udata/core/reuse/tasks.py,sha256=oyi6SGNfCKRLLuS-tLUCs_jcfa43jOn4Wuzq65Vnj8A,1529
184
183
  udata/core/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
- udata/core/site/api.py,sha256=GH8NPEoiScbaUBoSlF-SuZea60c8jfCcQ3782lJOIVI,6213
184
+ udata/core/site/api.py,sha256=tj-FKb-f9GfV9ZZjyCM8pTitX9vTAp_tDTv8yTT-FsU,6178
186
185
  udata/core/site/factories.py,sha256=O0nLFmjrFyemzcs-YwNukq5nqd383KBGrgL5bOQsGbA,378
187
186
  udata/core/site/forms.py,sha256=avEZ4rJhibF7sKexqMlKt1qMFiUHNrmJGKjZqcAyjrc,459
188
187
  udata/core/site/models.py,sha256=PVB4I2dTQDr5p5md3faVDGZSgOcGKbloHzjzdOG96_I,6266
@@ -223,8 +222,8 @@ udata/core/tags/models.py,sha256=xzBoNwqBG5A5Ou83DWT858ccbTCkNnim_xBWgy1oyz4,550
223
222
  udata/core/tags/tasks.py,sha256=-wA9iCWlwe0IBy9N5oL-ryny0QKKIqaupEgRzM3TuqE,975
224
223
  udata/core/tags/views.py,sha256=A6RlezsRGXeWd8cyCpKe4JeEkb7nvtDWKHEc53rponE,384
225
224
  udata/core/topic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
- udata/core/topic/api.py,sha256=yclnzrVkRgAFi6y2qwBdk3P36i3IgTKsGWDfvatuy8o,5337
227
- udata/core/topic/apiv2.py,sha256=B3grxzMmbjkuvHtFLeESelX3DBXIF0MwvvTEpWVzANo,10409
225
+ udata/core/topic/api.py,sha256=2hPEXhMuvLy7Q7i6_-7B2DI_icW0HRvSC_KeT7YB_WM,5335
226
+ udata/core/topic/apiv2.py,sha256=xoaQw_C5_ElQWitzXdKDLHRzpD7UMXVZXKNJulrFnK8,10360
228
227
  udata/core/topic/factories.py,sha256=RpUpwLd2gYwwS0vc7FcbQ-4tC0FSsAg7O8bPgozYKgE,684
229
228
  udata/core/topic/forms.py,sha256=NGC_k6PRw8uswEHaXW1Q3ih_2sx2-dNUY--LD-me80Y,973
230
229
  udata/core/topic/models.py,sha256=c1585vMpNZwyQsntg0lWNKzZnnNz9P3RiQYvMrPs7PE,2082
@@ -232,7 +231,7 @@ udata/core/topic/parsers.py,sha256=YTMWPi1KtdQNZF_dX68X7x1BLyq_zynr1iommOeJmiA,2
232
231
  udata/core/topic/permissions.py,sha256=RtFPPlxuU_Bv7ip6LDO4AoPrKFnIOEs9cCMXaSSmEdk,118
233
232
  udata/core/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
233
  udata/core/user/activities.py,sha256=x-mSiwx7TzM2ci6KMkMiNx0sFs8J3LTJNbigtE8cA0s,2807
235
- udata/core/user/api.py,sha256=uyuyCxmbRdWrqIIIAX5vNa5Drp3huI8FdZrA0Bvb94c,12813
234
+ udata/core/user/api.py,sha256=hTmKlMZvVQ9yj2XeA35Ttz_8mBbcoEfbva166mrgT8w,12778
236
235
  udata/core/user/api_fields.py,sha256=9aUdaYPUON-cFhTA10Mch5gYK9zkrFBLe4rrTxnQXoE,5491
237
236
  udata/core/user/apiv2.py,sha256=4eNsvJjb4ChJQFrXtVbkOtAvXEcQcQpZf8vkEbriXRA,1125
238
237
  udata/core/user/commands.py,sha256=d33hjgUi8WLA8YFvoq__FJJ_E-fk8f4tWo1iuT8jJvM,3156
@@ -263,7 +262,7 @@ udata/features/territories/api.py,sha256=I2FsKe5sOWn860f52wHiocdLr9tB0w8ttk9QNRe
263
262
  udata/features/territories/models.py,sha256=6LWC-xBv6vTGeqHYpvKZQ9DXHXaPGqJP4rz-gETwTwU,1537
264
263
  udata/features/transfer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
265
264
  udata/features/transfer/actions.py,sha256=MDKiSAUYbccSuCV1cmw95_gMfMeRLq0iM9G3d7IKsaM,1762
266
- udata/features/transfer/api.py,sha256=NiZOGZ4RIrYfS_UEDPbwPR6c1wGy65QcP1PGu4AtaZM,4891
265
+ udata/features/transfer/api.py,sha256=btIaWtdY7Sf6tf5lOo2uXjR8RkWWjsSWGLdGglsp1Qs,4838
267
266
  udata/features/transfer/factories.py,sha256=2dAvRaemGieLn5aVEXQ6cmIGD2dTX5I0Ql2RrT77PfU,208
268
267
  udata/features/transfer/models.py,sha256=3dFq9GdeGC1h82lIQtNbnKP40kdCLikO6hVYIy-TVVA,921
269
268
  udata/features/transfer/notifications.py,sha256=jeH5buqTuWcokgXfEj-EZ7C3YCrtw-NikfrH2bqFyHM,1121
@@ -351,14 +350,14 @@ udata/migrations/__init__.py,sha256=RBCBDaTlLjuMs_Qzwji6Z6T4r7FCGXhESKoxQbT5qAA,
351
350
  udata/models/__init__.py,sha256=txbZwa-lRG3mq99eQ9E5YcFWiNUdjDVSyJJvlqUMFfs,1413
352
351
  udata/mongo/__init__.py,sha256=y4Rv-kq3o_kcEulcNpePLzocXPBNpx3Jd82G-VZPaMc,1421
353
352
  udata/mongo/badges_field.py,sha256=UmSaQkiOFtIb116GAT2B0OE6ypOrq8Jx7GdULEr05LU,985
354
- udata/mongo/datetime_fields.py,sha256=ZIyyl7ltMMY9yQkEK3YsCGO3ZzSF0ixWPj12RE6Rmas,1894
355
- udata/mongo/document.py,sha256=lpbcR81z1rDt40aKTG6mykT6RswIMEKGmfRT_aDEkfQ,1230
353
+ udata/mongo/datetime_fields.py,sha256=7ShJTNoJy_DZUlTILI32VZOwELZLBKGqMBGAciovrgw,2064
354
+ udata/mongo/document.py,sha256=EoniS8pgEDafVoGs2cRJd4vVcEodzZQn-1KN4tG40CE,1331
356
355
  udata/mongo/engine.py,sha256=KdvaQnpw6un47CHpu3q9PYWwTtovVmsKZK_k1DmN48M,2552
357
356
  udata/mongo/errors.py,sha256=rlilT8dOmGiAP19r8arnNi_VBENZG2UjczILwYx33t4,232
358
357
  udata/mongo/extras_fields.py,sha256=FfyVvRkpLn4pUeCqwI33NBJblHOywGlnA05RCEZ-ugs,4139
359
358
  udata/mongo/queryset.py,sha256=HWPhQBywLlqLZTSjg-Q00AHFlsddYb2Q3SmTt77QdsM,3097
360
359
  udata/mongo/slug_fields.py,sha256=4MqarfSm_hIxat_ugUC-2cQDvM5vXYn75g1WhTKyaC4,6432
361
- udata/mongo/taglist_field.py,sha256=91MqSwZ1jZPmGgymYNV_2rHZPdglT15503i4m9HqSsM,550
360
+ udata/mongo/taglist_field.py,sha256=WH8dEDRBkj-uoojNUGZdV0PSRtvPlfu5ejmRUhhurEU,1374
362
361
  udata/mongo/url_field.py,sha256=UmUr9c5SxDFDpS5QsRTq2pKcCTOr1SoB4UITwNjtuaI,1345
363
362
  udata/mongo/uuid_fields.py,sha256=tuQ3zs_BnQHjaiKSIYv43jxvYtOvRLw9nP5CQ3fcMks,482
364
363
  udata/notifications/__init__.py,sha256=ZrSpV2zI9bZ0oz8tGsnA8hjDdGeU7YDdgvOLo70aohg,54
@@ -421,10 +420,10 @@ udata/static/SourceSansPro-SemiboldIt.ttf,sha256=EK3ye-6bT-g3T7TSBW-kaoHWkUtlL3o
421
420
  udata/static/SourceSansPro-SemiboldIt.ttf.woff2,sha256=JBtSfqRaYeoVAVQ3ynlAwX-to2RlkE3yAaVkv6-s-NA,44608
422
421
  udata/static/admin.css,sha256=RC7GvbVK8c5wDuELPeVdQpy3ab7HbHl1T4hUo5n-NVk,185167
423
422
  udata/static/admin.css.map,sha256=tUhFfsJUK3RrWCih9gUkf-Ywccuztxf4tqvXcN6zP3Y,626542
424
- udata/static/admin.js,sha256=_NT8RjG3V30C6FGb42ElCvWNyi6EyxIYnOAtNU86VFE,1327854
425
- udata/static/admin.js.map,sha256=pFAg8lZ2A3PUG0HAiugOnLw7kQNMylulMAg5sQQxsjM,8511808
426
- udata/static/common.js,sha256=7fP7XWcX8j5Bonv1fZUSdsrfigPJuBpgBLz-xiDOajg,2252
427
- udata/static/common.js.map,sha256=jCSsuPP1qEoAvZvIfRqTV5Kj1g8ZaEI1DzL4ki8sOlI,14137
423
+ udata/static/admin.js,sha256=4dT1TxL-t0lHOWeuQNv4UNQdBPdNeNI1HyoAKdJ1oag,1327903
424
+ udata/static/admin.js.map,sha256=rYa-YLNxQK7QNoMSkGC2Gg26sb6qtqhj6rWm2B5laMk,8511948
425
+ udata/static/common.js,sha256=dhOwxrKK4Uwj1tpwR1QMlKDAvYhuWwCy55imeLLlrcI,2252
426
+ udata/static/common.js.map,sha256=EfcNLExHJZ_hlxH-nUibh7Wo4x8WWKg0ay1bEWlQa6c,14137
428
427
  udata/static/fontawesome-webfont.eot,sha256=e_yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk,165742
429
428
  udata/static/fontawesome-webfont.svg,sha256=rWFXkmwWIrpOHQPUePFUE2hSS_xG9R5C_g2UX37zI-Q,444379
430
429
  udata/static/fontawesome-webfont.ttf,sha256=qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg,165548
@@ -445,8 +444,8 @@ udata/static/chunks/10.c1c9496ebfc8949f3de2.js,sha256=_c1TZ9A3QYiV16Ia4ZTOtCdgS4
445
444
  udata/static/chunks/10.c1c9496ebfc8949f3de2.js.map,sha256=nUjRgXE2w07GZL2B3pmsW7PFExt9O1V7r7WeGs2IITo,2736101
446
445
  udata/static/chunks/11.18f1cc16362b76373c40.js,sha256=OsdV4LAscV5dG4OZr6Iz7s43SX4bRX47VO_w3sTTAHw,395574
447
446
  udata/static/chunks/11.18f1cc16362b76373c40.js.map,sha256=r3Qy-8c3rm4xyZPhiVNdBpCvQF0skPASzssvQ683oZ0,2268995
448
- udata/static/chunks/12.5b900cac4417e10ef3a0.js,sha256=HH_uptj3SiZdIBEqA4A15oqJni9ZP9GzTV3nHTFyenk,420850
449
- udata/static/chunks/12.5b900cac4417e10ef3a0.js.map,sha256=6TKsNgW1YkNWNSWhcHNMpR_HKpSwJ64A2aOnXfxNti8,2440921
447
+ udata/static/chunks/12.576e63b7a990f8eab784.js,sha256=zYqbe5FZP9NI5Sv_9D-bOwq4JcxQjZpMj--3YE2iJ00,420868
448
+ udata/static/chunks/12.576e63b7a990f8eab784.js.map,sha256=v5Vc1o2TJwPJX36_WeItlxKMfaCOZhbAIFoyVa0d4bo,2441014
450
449
  udata/static/chunks/13.fd1ca1cf5b2c1854ed51.js,sha256=P83sk30g5FSkpngTNv39pTEqSi4OGWFoIz136FdZZOQ,420359
451
450
  udata/static/chunks/13.fd1ca1cf5b2c1854ed51.js.map,sha256=jxwNI240zC4enwYriyuuv--c0nFlO2A1fssZtvDWncQ,2429413
452
451
  udata/static/chunks/14.42393a4d555321f07b8b.js,sha256=PDjrjHWtEH25yDvj3V-lbvvAosaOrp7rpU4-86HCtRk,290138
@@ -479,8 +478,8 @@ udata/static/chunks/26.980f1773d9ad3068ab73.js,sha256=ur_pR8pePPRvWBRE8lshiohPvO
479
478
  udata/static/chunks/26.980f1773d9ad3068ab73.js.map,sha256=SA4nrbUWL5qMJioFiNU6jRueuZb0fL30HBAvWqqhubk,560885
480
479
  udata/static/chunks/27.d27b63112823e700bf20.js,sha256=U3CxvL-58HZZbmP4JE1QQ7rV2Qps5_gBHzPd2myMb_A,113966
481
480
  udata/static/chunks/27.d27b63112823e700bf20.js.map,sha256=tcZjdNuzAfCIa6Mz3AofziK5cgbKedCQlTZfKbuHWZs,566084
482
- udata/static/chunks/28.1759a7f57d526e6db574.js,sha256=_0N_1mgjE7bLKYtkwWBMH6OtAyiAb4qfvkd97O70_8Q,112696
483
- udata/static/chunks/28.1759a7f57d526e6db574.js.map,sha256=uSOyNUGSgllJdPV4IGokdi50gPxd4AVSO24m0Z3V4G8,560427
481
+ udata/static/chunks/28.1ef31a46255dc2bf56d1.js,sha256=bP2_P_e4WnNVVN2Gdi7UJ9JGgNtGrxq3adu8lNsXc8w,112714
482
+ udata/static/chunks/28.1ef31a46255dc2bf56d1.js.map,sha256=lLQUbIwg9vRXEfGQzB3AuFVZQo_87X4oVHNaN7O0gbg,560520
484
483
  udata/static/chunks/29.056b71a60b1ba45eb81b.js,sha256=F8EOLry55IL2wpUttbgskR01yKg_0QfOZjGLN1SrJ-8,112500
485
484
  udata/static/chunks/29.056b71a60b1ba45eb81b.js.map,sha256=NtngdAMN98Q7bYHpue5WK7Xkm1LH4MaXbFlyXUsM5sI,559084
486
485
  udata/static/chunks/3.31f4515503a814e0e3a3.js,sha256=mPesYUEarykevUo2oviHkwBvB2yc8BVEap8jM1zygsE,6234
@@ -608,7 +607,7 @@ udata/tests/api/test_follow_api.py,sha256=fccgVNfcqET221PPS3p7qzb9hpvbBBUGhV-l4U
608
607
  udata/tests/api/test_me_api.py,sha256=ZJKGH9fFv-4cSGcYAGd6IJA_PwPjVGIqWNy_DhFA8ms,13827
609
608
  udata/tests/api/test_organizations_api.py,sha256=YcO2fWELdmPD4Oc8h5MTrLI-Gfbx16RN4nE14zzKGFw,35049
610
609
  udata/tests/api/test_reports_api.py,sha256=fCSz9NwMXBs6cxdXBVVI6y564AtovmZYw3xkgxQ9KE8,6217
611
- udata/tests/api/test_reuses_api.py,sha256=v9RJcJ_fdR8dgnq6H7j58_7n83BhoFJJ9YOd7CJwsyw,16769
610
+ udata/tests/api/test_reuses_api.py,sha256=yDF7fssG4km6MfzBbBTrPaQ_Ay3E8W9OglSG_RHxlYk,18710
612
611
  udata/tests/api/test_swagger.py,sha256=eE6La9qdTYTIUFevRVPJgtj17Jq_8uOlsDwzCNR0LL8,760
613
612
  udata/tests/api/test_tags_api.py,sha256=wQR67DeRQvLn8fvgwUMpnT135xamo2fNSSqhEMm0v-g,2429
614
613
  udata/tests/api/test_topics_api.py,sha256=s4pqHTWl3ly8HQd2YmVclHFrjrf0212u5iDSOTSBbZg,9375
@@ -697,9 +696,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=WpPzAqVd2Onv_kz45ULUySKPLrpjcc
697
696
  udata/translations/pt/LC_MESSAGES/udata.po,sha256=18Op9RUITewoDRewlOdYzzq6gjsf1lsvepACV1d7zxs,44976
698
697
  udata/translations/sr/LC_MESSAGES/udata.mo,sha256=NIYRNhVoETZUvIvWm3cCW7DtMBAnS2vXzZjMF5ZzD_c,28500
699
698
  udata/translations/sr/LC_MESSAGES/udata.po,sha256=rQB-4V4WJ7bURj6g2j653vItr5TMHadcLQxec7_fDmg,51545
700
- udata-9.1.4.dev31123.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
701
- udata-9.1.4.dev31123.dist-info/METADATA,sha256=hnb_j7dBFmB5bbE52ivIea18L_DUVyludOr2HWxlJF0,128796
702
- udata-9.1.4.dev31123.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
703
- udata-9.1.4.dev31123.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
704
- udata-9.1.4.dev31123.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
705
- udata-9.1.4.dev31123.dist-info/RECORD,,
699
+ udata-9.1.4.dev31143.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
700
+ udata-9.1.4.dev31143.dist-info/METADATA,sha256=cmYTKnza6rM9zflVa1Wbm7oSsIaxzVpHMVD87-hNuUY,128887
701
+ udata-9.1.4.dev31143.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
702
+ udata-9.1.4.dev31143.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
703
+ udata-9.1.4.dev31143.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
704
+ udata-9.1.4.dev31143.dist-info/RECORD,,
udata/core/reuse/forms.py DELETED
@@ -1,45 +0,0 @@
1
- from udata.core.reuse.constants import REUSE_TOPICS, REUSE_TYPES
2
- from udata.forms import ModelForm, fields, validators
3
- from udata.i18n import lazy_gettext as _
4
- from udata.models import Reuse
5
-
6
- from .constants import DESCRIPTION_SIZE_LIMIT, IMAGE_SIZES, TITLE_SIZE_LIMIT
7
-
8
- __all__ = ("ReuseForm",)
9
-
10
-
11
- def check_url_does_not_exists(form, field):
12
- """Ensure a reuse URL is not yet registered"""
13
- if field.data != field.object_data and Reuse.url_exists(field.data):
14
- raise validators.ValidationError(_("This URL is already registered"))
15
-
16
-
17
- class ReuseForm(ModelForm):
18
- model_class = Reuse
19
-
20
- title = fields.StringField(
21
- _("Title"), [validators.DataRequired(), validators.Length(max=TITLE_SIZE_LIMIT)]
22
- )
23
- description = fields.MarkdownField(
24
- _("Description"),
25
- [validators.DataRequired(), validators.Length(max=DESCRIPTION_SIZE_LIMIT)],
26
- description=_(
27
- "The details about the reuse (build process, specifics, " "self-critics...)."
28
- ),
29
- )
30
- type = fields.SelectField(_("Type"), choices=list(REUSE_TYPES.items()))
31
- url = fields.URLField(_("URL"), [validators.DataRequired(), check_url_does_not_exists])
32
- image = fields.ImageField(_("Image"), sizes=IMAGE_SIZES, placeholder="reuse")
33
- tags = fields.TagField(_("Tags"), description=_("Some taxonomy keywords"))
34
- datasets = fields.DatasetListField(_("Used datasets"))
35
- private = fields.BooleanField(
36
- _("Private"),
37
- description=_("Restrict the dataset visibility to you or " "your organization only."),
38
- )
39
- topic = fields.SelectField(_("Topic"), choices=list(REUSE_TOPICS.items()))
40
-
41
- owner = fields.CurrentUserField()
42
- organization = fields.PublishAsField(_("Publish as"))
43
- deleted = fields.DateTimeField()
44
- archived = fields.DateTimeField()
45
- extras = fields.ExtrasField()