udata 6.1.7.dev25977__py2.py3-none-any.whl → 6.1.7.dev26008__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 (29) hide show
  1. udata/core/discussions/tasks.py +2 -2
  2. udata/core/organization/forms.py +4 -2
  3. udata/core/organization/models.py +0 -1
  4. udata/settings.py +5 -0
  5. udata/static/admin.js +3 -3
  6. udata/static/admin.js.map +1 -1
  7. udata/static/chunks/{1.a89484c2e9e7c887e74b.js → 1.2a80f2805f0ad61574e4.js} +2 -2
  8. udata/static/chunks/1.2a80f2805f0ad61574e4.js.map +1 -0
  9. udata/static/chunks/{29.c04d2827d03bf6177396.js → 29.7b551c87d15f96f30b57.js} +2 -2
  10. udata/static/chunks/29.7b551c87d15f96f30b57.js.map +1 -0
  11. udata/static/common.js +1 -1
  12. udata/static/common.js.map +1 -1
  13. udata/templates/macros/metadata.html +3 -0
  14. udata/templates/mail/badge_added_certified.html +1 -1
  15. udata/templates/mail/badge_added_public_service.html +1 -1
  16. udata/templates/mail/discussion_closed.html +1 -1
  17. udata/templates/mail/membership_request.html +1 -1
  18. udata/templates/mail/new_discussion.html +1 -1
  19. udata/templates/mail/new_discussion_comment.html +1 -1
  20. udata/templates/mail/user_mail_card.html +1 -1
  21. udata/tests/test_discussions.py +75 -1
  22. {udata-6.1.7.dev25977.dist-info → udata-6.1.7.dev26008.dist-info}/METADATA +3 -2
  23. {udata-6.1.7.dev25977.dist-info → udata-6.1.7.dev26008.dist-info}/RECORD +27 -27
  24. udata/static/chunks/1.a89484c2e9e7c887e74b.js.map +0 -1
  25. udata/static/chunks/29.c04d2827d03bf6177396.js.map +0 -1
  26. {udata-6.1.7.dev25977.dist-info → udata-6.1.7.dev26008.dist-info}/LICENSE +0 -0
  27. {udata-6.1.7.dev25977.dist-info → udata-6.1.7.dev26008.dist-info}/WHEEL +0 -0
  28. {udata-6.1.7.dev25977.dist-info → udata-6.1.7.dev26008.dist-info}/entry_points.txt +0 -0
  29. {udata-6.1.7.dev25977.dist-info → udata-6.1.7.dev26008.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,d){for(var b,t,_=0,n=[];_<r.length;_++)t=r[_],f[t]&&n.push.apply(n,f[t]),f[t]=0;for(b in d){var i=d[b];switch(typeof i){case"object":e[b]=function(a){var c=a.slice(1),f=a[0];return function(a,r,d){e[f].apply(this,[a,r,d].concat(c))}}(i);break;case"function":e[b]=i;break;default:e[b]=e[i]}}for(a&&a(r,d);n.length;)n.shift().call(null,__webpack_require__);if(d[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:"8eba31c7f8a4ba12d4f0",1:"a89484c2e9e7c887e74b",2:"59edbaad3880b6989c03",3:"6b5640aaff12ceffed87",4:"ed0dea34413819390369",5:"39b82edb6afe71dfedda",6:"ac8a1d796320ea629a59",7:"fb1459b24b9370665f21",8:"ec9a022a808be725e418",9:"0ef49ae8d4cf283485fe",10:"f926dfd3ae7bf509ed4d",11:"1bab5dc273b4da2698da",12:"c9594fbeb5ec5f229448",13:"38196494b8fb921ef789",14:"f0598bceb83dddc07533",15:"e0e4d618ade824e9a054",16:"b6fdeda4b76dee9ff900",17:"ce9c798872e477e8d4da",18:"d1b82d6f8b5b291756cd",19:"ef0f0973698915a3b177",20:"23546befdf1e2f39820a",21:"c1564e20eb7fe23c3281",22:"13afd6a9ea6860e80603",23:"0e676fbff05e4c36acfc",24:"2a6267d518280dc5b69c",25:"ae4d92b7f22c0664a733",26:"074d8c1b6c13e9884fd9",27:"67c3fd17c23014c44845",28:"f2744e598de4330d8956",29:"c04d2827d03bf6177396",30:"e446df9cf9dff85de9b8",32:"05d20b5bb3e01a055067",33:"b8bc582459a84b047503"}[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,d){for(var b,t,_=0,n=[];_<r.length;_++)t=r[_],f[t]&&n.push.apply(n,f[t]),f[t]=0;for(b in d){var i=d[b];switch(typeof i){case"object":e[b]=function(a){var c=a.slice(1),f=a[0];return function(a,r,d){e[f].apply(this,[a,r,d].concat(c))}}(i);break;case"function":e[b]=i;break;default:e[b]=e[i]}}for(a&&a(r,d);n.length;)n.shift().call(null,__webpack_require__);if(d[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:"8eba31c7f8a4ba12d4f0",1:"2a80f2805f0ad61574e4",2:"59edbaad3880b6989c03",3:"6b5640aaff12ceffed87",4:"ed0dea34413819390369",5:"39b82edb6afe71dfedda",6:"ac8a1d796320ea629a59",7:"fb1459b24b9370665f21",8:"ec9a022a808be725e418",9:"0ef49ae8d4cf283485fe",10:"f926dfd3ae7bf509ed4d",11:"1bab5dc273b4da2698da",12:"c9594fbeb5ec5f229448",13:"38196494b8fb921ef789",14:"f0598bceb83dddc07533",15:"e0e4d618ade824e9a054",16:"b6fdeda4b76dee9ff900",17:"ce9c798872e477e8d4da",18:"d1b82d6f8b5b291756cd",19:"ef0f0973698915a3b177",20:"23546befdf1e2f39820a",21:"c1564e20eb7fe23c3281",22:"13afd6a9ea6860e80603",23:"0e676fbff05e4c36acfc",24:"2a6267d518280dc5b69c",25:"ae4d92b7f22c0664a733",26:"074d8c1b6c13e9884fd9",27:"67c3fd17c23014c44845",28:"f2744e598de4330d8956",29:"7b551c87d15f96f30b57",30:"e446df9cf9dff85de9b8",32:"4602685332947da48719",33:"b8bc582459a84b047503"}[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 dbec7e45afa736e719ed"],"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\":\"8eba31c7f8a4ba12d4f0\",\"1\":\"a89484c2e9e7c887e74b\",\"2\":\"59edbaad3880b6989c03\",\"3\":\"6b5640aaff12ceffed87\",\"4\":\"ed0dea34413819390369\",\"5\":\"39b82edb6afe71dfedda\",\"6\":\"ac8a1d796320ea629a59\",\"7\":\"fb1459b24b9370665f21\",\"8\":\"ec9a022a808be725e418\",\"9\":\"0ef49ae8d4cf283485fe\",\"10\":\"f926dfd3ae7bf509ed4d\",\"11\":\"1bab5dc273b4da2698da\",\"12\":\"c9594fbeb5ec5f229448\",\"13\":\"38196494b8fb921ef789\",\"14\":\"f0598bceb83dddc07533\",\"15\":\"e0e4d618ade824e9a054\",\"16\":\"b6fdeda4b76dee9ff900\",\"17\":\"ce9c798872e477e8d4da\",\"18\":\"d1b82d6f8b5b291756cd\",\"19\":\"ef0f0973698915a3b177\",\"20\":\"23546befdf1e2f39820a\",\"21\":\"c1564e20eb7fe23c3281\",\"22\":\"13afd6a9ea6860e80603\",\"23\":\"0e676fbff05e4c36acfc\",\"24\":\"2a6267d518280dc5b69c\",\"25\":\"ae4d92b7f22c0664a733\",\"26\":\"074d8c1b6c13e9884fd9\",\"27\":\"67c3fd17c23014c44845\",\"28\":\"f2744e598de4330d8956\",\"29\":\"c04d2827d03bf6177396\",\"30\":\"e446df9cf9dff85de9b8\",\"32\":\"05d20b5bb3e01a055067\",\"33\":\"b8bc582459a84b047503\"}[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\":\"8eba31c7f8a4ba12d4f0\",\"1\":\"a89484c2e9e7c887e74b\",\"2\":\"59edbaad3880b6989c03\",\"3\":\"6b5640aaff12ceffed87\",\"4\":\"ed0dea34413819390369\",\"5\":\"39b82edb6afe71dfedda\",\"6\":\"ac8a1d796320ea629a59\",\"7\":\"fb1459b24b9370665f21\",\"8\":\"ec9a022a808be725e418\",\"9\":\"0ef49ae8d4cf283485fe\",\"10\":\"f926dfd3ae7bf509ed4d\",\"11\":\"1bab5dc273b4da2698da\",\"12\":\"c9594fbeb5ec5f229448\",\"13\":\"38196494b8fb921ef789\",\"14\":\"f0598bceb83dddc07533\",\"15\":\"e0e4d618ade824e9a054\",\"16\":\"b6fdeda4b76dee9ff900\",\"17\":\"ce9c798872e477e8d4da\",\"18\":\"d1b82d6f8b5b291756cd\",\"19\":\"ef0f0973698915a3b177\",\"20\":\"23546befdf1e2f39820a\",\"21\":\"c1564e20eb7fe23c3281\",\"22\":\"13afd6a9ea6860e80603\",\"23\":\"0e676fbff05e4c36acfc\",\"24\":\"2a6267d518280dc5b69c\",\"25\":\"ae4d92b7f22c0664a733\",\"26\":\"074d8c1b6c13e9884fd9\",\"27\":\"67c3fd17c23014c44845\",\"28\":\"f2744e598de4330d8956\",\"29\":\"c04d2827d03bf6177396\",\"30\":\"e446df9cf9dff85de9b8\",\"32\":\"05d20b5bb3e01a055067\",\"33\":\"b8bc582459a84b047503\"}[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 dbec7e45afa736e719ed\n **/"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap c4bcc3fe1126d2c2064d"],"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\":\"8eba31c7f8a4ba12d4f0\",\"1\":\"2a80f2805f0ad61574e4\",\"2\":\"59edbaad3880b6989c03\",\"3\":\"6b5640aaff12ceffed87\",\"4\":\"ed0dea34413819390369\",\"5\":\"39b82edb6afe71dfedda\",\"6\":\"ac8a1d796320ea629a59\",\"7\":\"fb1459b24b9370665f21\",\"8\":\"ec9a022a808be725e418\",\"9\":\"0ef49ae8d4cf283485fe\",\"10\":\"f926dfd3ae7bf509ed4d\",\"11\":\"1bab5dc273b4da2698da\",\"12\":\"c9594fbeb5ec5f229448\",\"13\":\"38196494b8fb921ef789\",\"14\":\"f0598bceb83dddc07533\",\"15\":\"e0e4d618ade824e9a054\",\"16\":\"b6fdeda4b76dee9ff900\",\"17\":\"ce9c798872e477e8d4da\",\"18\":\"d1b82d6f8b5b291756cd\",\"19\":\"ef0f0973698915a3b177\",\"20\":\"23546befdf1e2f39820a\",\"21\":\"c1564e20eb7fe23c3281\",\"22\":\"13afd6a9ea6860e80603\",\"23\":\"0e676fbff05e4c36acfc\",\"24\":\"2a6267d518280dc5b69c\",\"25\":\"ae4d92b7f22c0664a733\",\"26\":\"074d8c1b6c13e9884fd9\",\"27\":\"67c3fd17c23014c44845\",\"28\":\"f2744e598de4330d8956\",\"29\":\"7b551c87d15f96f30b57\",\"30\":\"e446df9cf9dff85de9b8\",\"32\":\"4602685332947da48719\",\"33\":\"b8bc582459a84b047503\"}[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\":\"8eba31c7f8a4ba12d4f0\",\"1\":\"2a80f2805f0ad61574e4\",\"2\":\"59edbaad3880b6989c03\",\"3\":\"6b5640aaff12ceffed87\",\"4\":\"ed0dea34413819390369\",\"5\":\"39b82edb6afe71dfedda\",\"6\":\"ac8a1d796320ea629a59\",\"7\":\"fb1459b24b9370665f21\",\"8\":\"ec9a022a808be725e418\",\"9\":\"0ef49ae8d4cf283485fe\",\"10\":\"f926dfd3ae7bf509ed4d\",\"11\":\"1bab5dc273b4da2698da\",\"12\":\"c9594fbeb5ec5f229448\",\"13\":\"38196494b8fb921ef789\",\"14\":\"f0598bceb83dddc07533\",\"15\":\"e0e4d618ade824e9a054\",\"16\":\"b6fdeda4b76dee9ff900\",\"17\":\"ce9c798872e477e8d4da\",\"18\":\"d1b82d6f8b5b291756cd\",\"19\":\"ef0f0973698915a3b177\",\"20\":\"23546befdf1e2f39820a\",\"21\":\"c1564e20eb7fe23c3281\",\"22\":\"13afd6a9ea6860e80603\",\"23\":\"0e676fbff05e4c36acfc\",\"24\":\"2a6267d518280dc5b69c\",\"25\":\"ae4d92b7f22c0664a733\",\"26\":\"074d8c1b6c13e9884fd9\",\"27\":\"67c3fd17c23014c44845\",\"28\":\"f2744e598de4330d8956\",\"29\":\"7b551c87d15f96f30b57\",\"30\":\"e446df9cf9dff85de9b8\",\"32\":\"4602685332947da48719\",\"33\":\"b8bc582459a84b047503\"}[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 c4bcc3fe1126d2c2064d\n **/"],"sourceRoot":""}
@@ -48,6 +48,9 @@
48
48
  <meta name="search-autocomplete-enabled" content="{{ 'true' if config.SEARCH_AUTOCOMPLETE_ENABLED else 'false' }}">
49
49
  <meta name="search-autocomplete-debounce" content="{{ config.SEARCH_AUTOCOMPLETE_DEBOUNCE }}">
50
50
  <meta name="dataset-max-resources-uncollapsed" content="{{ config.DATASET_MAX_RESOURCES_UNCOLLAPSED }}">
51
+ {% if config.ORG_BID_FORMAT %}
52
+ <meta name="org-bid-format" content="{{ config.ORG_BID_FORMAT }}">
53
+ {% endif %}
51
54
  <meta name="markdown-config" content="{{ {
52
55
  'tags': config.MD_ALLOWED_TAGS,
53
56
  'attributes': config.MD_ALLOWED_ATTRIBUTES,
@@ -6,7 +6,7 @@
6
6
  _('%(user)s has certified your organization "%(name)s"',
7
7
  user=(
8
8
  '<a href="'|safe
9
- + url_for('users.show', user=badge.created_by, _external=True)
9
+ + url_for('api.user', user=badge.created_by, _external=True)
10
10
  + '">'|safe
11
11
  + badge.created_by.fullname
12
12
  + '</a>'|safe
@@ -6,7 +6,7 @@
6
6
  _('%(user)s has identified your organization "%(name)s" as public service',
7
7
  user=(
8
8
  '<a href="'|safe
9
- + url_for('users.show', user=badge.created_by, _external=True)
9
+ + url_for('api.user', user=badge.created_by, _external=True)
10
10
  + '">'|safe
11
11
  + badge.created_by.fullname
12
12
  + '</a>'|safe
@@ -7,7 +7,7 @@
7
7
  type=discussion.subject.verbose_name,
8
8
  user=(
9
9
  '<a href="'|safe
10
- + url_for('users.show', user=message.posted_by, _external=True)
10
+ + url_for('api.user', user=message.posted_by, _external=True)
11
11
  + '">'|safe
12
12
  + message.posted_by.fullname
13
13
  + '</a>'|safe
@@ -8,7 +8,7 @@
8
8
  {{ _('As an administrator of "%(org)s" you are being informed than a new membership request from %(user)s is pending for validation',
9
9
  user=(
10
10
  '<a href="'|safe
11
- + url_for('users.show', user=request.user, _external=True)
11
+ + url_for('api.user', user=request.user, _external=True)
12
12
  + '">'|safe
13
13
  + request.user.fullname
14
14
  + '</a>'|safe
@@ -7,7 +7,7 @@
7
7
  type=discussion.subject.verbose_name,
8
8
  user=(
9
9
  '<a href="'|safe
10
- + url_for('users.show', user=discussion.user, _external=True)
10
+ + url_for('api.user', user=discussion.user, _external=True)
11
11
  + '">'|safe
12
12
  + discussion.user.fullname
13
13
  + '</a>'|safe
@@ -7,7 +7,7 @@
7
7
  type=discussion.subject.verbose_name,
8
8
  user=(
9
9
  '<a href="'|safe
10
- + url_for('users.show', user=message.posted_by, _external=True)
10
+ + url_for('api.user', user=message.posted_by, _external=True)
11
11
  + '">'|safe
12
12
  + message.posted_by.fullname
13
13
  + '</a>'|safe
@@ -1,5 +1,5 @@
1
1
  {% macro user_mail_card(user, msg=None) %}
2
- <a href="{{ url_for('users.show', user=user.id, _external=True) }}"
2
+ <a href="{{ url_for('api.user', user=user.id, _external=True) }}"
3
3
  style="margin: 0;padding: 0;width:100%;">
4
4
  <table height="60" cellpadding="0" cellspacing="0" style="margin: 0;padding: 0;border:1px solid #eee;width:100%;">
5
5
  <tr style="margin: 0;padding: 0;">
@@ -4,7 +4,7 @@ from flask import url_for
4
4
 
5
5
  from udata.models import Dataset, Member
6
6
  from udata.core.discussions.models import Message, Discussion
7
- from udata.core.discussions.metrics import update_discussions_metric
7
+ from udata.core.discussions.metrics import update_discussions_metric # noqa
8
8
  from udata.core.discussions.notifications import discussions_notifications
9
9
  from udata.core.discussions.signals import (
10
10
  on_new_discussion, on_new_discussion_comment,
@@ -17,6 +17,7 @@ from udata.core.discussions.tasks import (
17
17
  from udata.core.dataset.factories import DatasetFactory
18
18
  from udata.core.organization.factories import OrganizationFactory
19
19
  from udata.core.user.factories import UserFactory, AdminFactory
20
+ from udata.tests.helpers import capture_mails
20
21
  from udata.utils import faker
21
22
 
22
23
  from . import TestCase, DBTestMixin
@@ -550,3 +551,76 @@ class DiscussionsNotificationsTest(TestCase, DBTestMixin):
550
551
  self.assertEqual(details['title'], discussion.title)
551
552
  self.assertEqual(details['subject']['id'], discussion.subject.id)
552
553
  self.assertEqual(details['subject']['type'], 'dataset')
554
+
555
+
556
+ class DiscussionsMailsTest(APITestCase):
557
+ modules = []
558
+
559
+ def test_new_discussion_mail(self):
560
+ user = UserFactory()
561
+ owner = UserFactory()
562
+ message = Message(content=faker.sentence(), posted_by=user)
563
+ discussion = Discussion.objects.create(
564
+ subject=DatasetFactory(owner=owner),
565
+ user=user,
566
+ title=faker.sentence(),
567
+ discussion=[message]
568
+ )
569
+
570
+ with capture_mails() as mails:
571
+ notify_new_discussion(discussion.id)
572
+
573
+ # Should have sent one mail to the owner
574
+ self.assertEqual(len(mails), 1)
575
+ self.assertEqual(mails[0].recipients[0], owner.email)
576
+
577
+ def test_new_discussion_comment_mail(self):
578
+ owner = UserFactory()
579
+ poster = UserFactory()
580
+ commenter = UserFactory()
581
+ message = Message(content=faker.sentence(), posted_by=poster)
582
+ second_message = Message(content=faker.sentence(), posted_by=owner)
583
+ new_message = Message(content=faker.sentence(), posted_by=commenter)
584
+ discussion = Discussion.objects.create(
585
+ subject=DatasetFactory(owner=owner),
586
+ user=poster,
587
+ title=faker.sentence(),
588
+ discussion=[message, second_message, new_message]
589
+ )
590
+
591
+ with capture_mails() as mails:
592
+ notify_new_discussion_comment(discussion.id, message=len(discussion.discussion) - 1)
593
+
594
+ # Should have sent one mail to the owner and the other participants
595
+ # and no mail to the commenter. The owner should appear only once in the recipients
596
+ # even if he is in both the discussion and the owner of the dataset.
597
+ expected_recipients = (owner.email, poster.email)
598
+ self.assertEqual(len(mails), len(expected_recipients))
599
+ for mail in mails:
600
+ self.assertIn(mail.recipients[0], expected_recipients)
601
+ self.assertNotIn(commenter.email, mail.recipients)
602
+
603
+ def test_closed_discussion_mail(self):
604
+ owner = UserFactory()
605
+ poster = UserFactory()
606
+ commenter = UserFactory()
607
+ message = Message(content=faker.sentence(), posted_by=poster)
608
+ second_message = Message(content=faker.sentence(), posted_by=commenter)
609
+ closing_message = Message(content=faker.sentence(), posted_by=owner)
610
+ discussion = Discussion.objects.create(
611
+ subject=DatasetFactory(owner=owner),
612
+ user=poster,
613
+ title=faker.sentence(),
614
+ discussion=[message, second_message, closing_message]
615
+ )
616
+
617
+ with capture_mails() as mails:
618
+ notify_discussion_closed(discussion.id, message=len(discussion.discussion) - 1)
619
+
620
+ # Should have sent one mail to each participant
621
+ # and no mail to the closer
622
+ expected_recipients = (poster.email, commenter.email)
623
+ self.assertEqual(len(mails), len(expected_recipients))
624
+ for mail in mails:
625
+ self.assertIn(mail.recipients[0], expected_recipients)
626
+ self.assertNotIn(owner.email, mail.recipients)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: udata
3
- Version: 6.1.7.dev25977
3
+ Version: 6.1.7.dev26008
4
4
  Summary: Open data portal
5
5
  Home-page: https://github.com/opendatateam/udata
6
6
  Author: Opendata Team
@@ -140,10 +140,11 @@ It is collectively taken care of by members of the
140
140
  - Add extra field to topic model and add it to the dataset search adapter [#2876](https://github.com/opendatateam/udata/pull/2876)
141
141
  - Upgrade pyyaml in develop and doc deps [#2880](https://github.com/opendatateam/udata/pull/2880)
142
142
  - Expose dataset's `*_internal` dates in a nested `internal` nested field in api marshalling [#2862](https://github.com/opendatateam/udata/pull/2862)
143
- - Add `business_number_id` metadata for organizations [#2871](https://github.com/opendatateam/udata/pull/2871)
143
+ - Add `business_number_id` metadata for organizations [#2871](https://github.com/opendatateam/udata/pull/2871) [#2887](https://github.com/opendatateam/udata/pull/2887)
144
144
  - Return 403 when posting comment on discussion closed [#2881](https://github.com/opendatateam/udata/pull/2881)
145
145
  - Ensure rdf parsed frequency is lowercase [#2883](https://github.com/opendatateam/udata/pull/2883)
146
146
  - Add a dict of URIs to replace in a RDF graph at harvest time [#2884](https://github.com/opendatateam/udata/pull/2884)
147
+ - Fix duplicate recipients in new comments mail [#2886](https://github.com/opendatateam/udata/pull/2886)
147
148
 
148
149
  ## 6.1.6 (2023-07-19)
149
150
 
@@ -11,7 +11,7 @@ udata/mail.py,sha256=dAMcbEtk5e54alpQezvF5adDrRPgdaT36QEdHD_5v50,2145
11
11
  udata/rdf.py,sha256=Es25HGruqA9Vg7W8B_1SB75lewiUunmsPDsg1yyX8Gw,8324
12
12
  udata/routing.py,sha256=9Y7Q-IHx-6CZVGozFrljl05rIjhA3K9SzF5aoEQgGyA,7034
13
13
  udata/sentry.py,sha256=KiZz0PpmYpZMvykH9UAbHpF4xBY0Q-8DeiEbXEHDUdw,2683
14
- udata/settings.py,sha256=MLW8Mi3vctr8-ZyEWD6OCyvZWyxrz_yyfCkF-1VzKiA,15784
14
+ udata/settings.py,sha256=VS_cMgtsT5UhZl9P_-wEjmE0g6kvhM2Y1NTSBmibiHM,15985
15
15
  udata/sitemap.py,sha256=pjtR2lU3gRHvK8l1Lw8B9wrqMMTYC5adUfFh0pUp_Q4,977
16
16
  udata/tags.py,sha256=8MvgyjfUz8O71tCV0V1fQV4_0C2P-SLFrm2IA2QfNDs,595
17
17
  udata/tasks.py,sha256=WR07NfqRMpEBNOnsXZ9myvDDSVfx4R5VZCi3CgO53A8,4886
@@ -98,7 +98,7 @@ udata/core/discussions/models.py,sha256=9z7R5TORemkxaiGJOu2RjOah1ffTjjA17UYYKjnE
98
98
  udata/core/discussions/notifications.py,sha256=1lsu8WyyOL4bdt0lx6IW5wTxmQ5gS_7FoncN53g3ToQ,927
99
99
  udata/core/discussions/permissions.py,sha256=q3tXNuNmuXCvZhKyudROcwXF53l-IeDR3pfKSh_hIL0,636
100
100
  udata/core/discussions/signals.py,sha256=zjuF-TiFwu9U_RcgZtHB2Z3W4oBx5hVZy6CCAl5Ekug,543
101
- udata/core/discussions/tasks.py,sha256=o03LhbtsqhpAPBMHwygmFT-RMBGyChtQrTEDRuPxedY,2808
101
+ udata/core/discussions/tasks.py,sha256=yxvxNNLKDD1FM_ItPRArDI2CtJFQSgC69yf__tBQQAo,2840
102
102
  udata/core/followers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
103
  udata/core/followers/api.py,sha256=9777c3RQUNOemQgL5SQI_U6ya4-Mwm8T2hXaXm_B_RM,2601
104
104
  udata/core/followers/metrics.py,sha256=nKgoiM2Gu-XHrgEf9duW1My66zFSKbmw25BGqo5wWtY,190
@@ -125,9 +125,9 @@ udata/core/organization/apiv2.py,sha256=9uj9Rx9i1mCIBQjdllm8LPmzj4XxR9rGxGpIYJIQ
125
125
  udata/core/organization/commands.py,sha256=FaSYxyWfQDR5tWvrAXmwcF2VMREOC13XTK8DD4vp_sY,1623
126
126
  udata/core/organization/csv.py,sha256=k62dvI-4bw_y74F3PepdJp-ryBJxLvZWvYyShq2876Y,502
127
127
  udata/core/organization/factories.py,sha256=5BABVcDhEChRhJsDfCDm8WyJG4l9j3H1_OFZa3VtlVs,646
128
- udata/core/organization/forms.py,sha256=V99kWLQFWONip81-HN3ZPdG676Avs8JBeuGRXVZxAtI,3519
128
+ udata/core/organization/forms.py,sha256=SLREg-Sfza7uQcFEOqfUBhCbP2U8Ek2gWX2xe5EUWpA,3540
129
129
  udata/core/organization/metrics.py,sha256=nQiRscXRgpuzpfg5nNE6-kyJqk36KdRXKD_G5MmiJok,750
130
- udata/core/organization/models.py,sha256=VGSLHwVhIUmr6ydrKQ-uDAJIGnMWEEedlms7JB7QuoM,8198
130
+ udata/core/organization/models.py,sha256=xiMujEdRMS-FVA8anK-Iqu7zzruXdOEf2NmbndVkczo,8173
131
131
  udata/core/organization/notifications.py,sha256=j-2LIHZ5y5QuVietWAWOrAqf4v1HMCtSDZ0w7V-z_1c,763
132
132
  udata/core/organization/permissions.py,sha256=cNIPiPgXVW2hvKqbuKHA_62tX2xaT8jiVJ3BEfnsHn0,1299
133
133
  udata/core/organization/rdf.py,sha256=ZSoxyZDj_5g6hv7lbTIy6bIW3xwvQy27rWNgJwtZ6LE,1762
@@ -365,10 +365,10 @@ udata/static/SourceSansPro-SemiboldIt.ttf,sha256=EK3ye-6bT-g3T7TSBW-kaoHWkUtlL3o
365
365
  udata/static/SourceSansPro-SemiboldIt.ttf.woff2,sha256=JBtSfqRaYeoVAVQ3ynlAwX-to2RlkE3yAaVkv6-s-NA,44608
366
366
  udata/static/admin.css,sha256=6NjjkctQrJv9lMEiD2WZczfdUwkzZES6tNe-hf-9ws4,185239
367
367
  udata/static/admin.css.map,sha256=ugpn6Zy36BWHvHSkOhwa-GNuXNv_bFPL9ukKVcbHgfU,626560
368
- udata/static/admin.js,sha256=vo-YIOxCdb7V0JF2Kwdu3WnaDy8f23vdIpFompsRp5A,1291888
369
- udata/static/admin.js.map,sha256=8IHnl7s7TB_jEOZ01e4_DB1Z8loXVox1wh-MP3FmKBY,8409633
370
- udata/static/common.js,sha256=c-7KHRuZhAUU6dRuTi4dJ5GgcbZKSU6nSk-Hk-dSkVg,2252
371
- udata/static/common.js.map,sha256=5EztN1WwuwpmRe2x78BF758L0lKx0cuFKUacXArBzI0,14137
368
+ udata/static/admin.js,sha256=mIW51hKYs1X7U0471BrFX93YhgchFNNYhqdOMHSYq1M,1291948
369
+ udata/static/admin.js.map,sha256=Hxa_VBKK_H-8HEcXJyrsYy8H60k6S_0iZrgY-DnJgUI,8409931
370
+ udata/static/common.js,sha256=vRhkhnnrjdpoKIQfxaq7z4RNyfwEBgVcUc3a4tBIV4A,2252
371
+ udata/static/common.js.map,sha256=uwyl57ahi0YdaoYbEpTpb22kA3-J5l6vB4wK2TTBj6k,14137
372
372
  udata/static/fontawesome-webfont.eot,sha256=e_yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk,165742
373
373
  udata/static/fontawesome-webfont.svg,sha256=rWFXkmwWIrpOHQPUePFUE2hSS_xG9R5C_g2UX37zI-Q,444379
374
374
  udata/static/fontawesome-webfont.ttf,sha256=qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg,165548
@@ -383,8 +383,8 @@ udata/static/widgets.js,sha256=ZgP0e3ARPy7_PQPNmX_hF8IZaKf9isk5VhWYVJq8KZ0,13705
383
383
  udata/static/widgets.js.map,sha256=RDaVASJDU9PjwOqGRsvp62qql8OwZ7Ccw5Q1Lo6PZGA,79828
384
384
  udata/static/chunks/0.8eba31c7f8a4ba12d4f0.js,sha256=CMepC07qMp7Pldyath70EU2iXCZO9lXIV7aoYFJ86SE,294847
385
385
  udata/static/chunks/0.8eba31c7f8a4ba12d4f0.js.map,sha256=qGlGuwUe8EzBvUeQD-2kqPgSwC4oMdUit0mYj7kDfVk,1665260
386
- udata/static/chunks/1.a89484c2e9e7c887e74b.js,sha256=kCfFDWPXU4OYVmoHQVNosAbAB80lEmi40HFZvkGWMPE,303278
387
- udata/static/chunks/1.a89484c2e9e7c887e74b.js.map,sha256=vy8nWUMwLoltanHW8K-R5vTMllFpduj3wXwNBXDMxaE,1736738
386
+ udata/static/chunks/1.2a80f2805f0ad61574e4.js,sha256=JqFHq3HKv8sNR1QrAEVA0MtceD0cBi2WUiw-MS891P0,303392
387
+ udata/static/chunks/1.2a80f2805f0ad61574e4.js.map,sha256=zf6e05ePksyg9P-iHqrF1TxFjNekWiznrvV8UIET3Og,1737216
388
388
  udata/static/chunks/10.f926dfd3ae7bf509ed4d.js,sha256=I79lv8s15w-OnFbbfRozSgSV6ojSZ5Pzuannq_icgT0,416264
389
389
  udata/static/chunks/10.f926dfd3ae7bf509ed4d.js.map,sha256=0NIBdV0O_TVjlYEfX9qTi8y0YwmYHPiwQxeD9ahsT74,2742974
390
390
  udata/static/chunks/11.1bab5dc273b4da2698da.js,sha256=rziG_BFgXE16fcGu-4VpaAln7Qkh1h8ytPoHyYv3w8Q,395554
@@ -425,8 +425,8 @@ udata/static/chunks/27.67c3fd17c23014c44845.js,sha256=qUFlUNJFzNYYnGNA9YlL6QnUc9
425
425
  udata/static/chunks/27.67c3fd17c23014c44845.js.map,sha256=KkzFaZRo6Im5DzfX7x4c40GfZoFVCNE6WRofVE_EMKY,563246
426
426
  udata/static/chunks/28.f2744e598de4330d8956.js,sha256=xKO261NbBcSd1FVCXfRuFWnjfxtkzi-V0EzXlPD5vGE,112233
427
427
  udata/static/chunks/28.f2744e598de4330d8956.js.map,sha256=ypMNFKEQ3ebykKPBN2Tlo1WFjGRP0w1lEZybM3PONJo,557589
428
- udata/static/chunks/29.c04d2827d03bf6177396.js,sha256=TsTgei7fkw-moVR3PH9XT2m0ZuHwaHfrvFDgjl8bjzw,111923
429
- udata/static/chunks/29.c04d2827d03bf6177396.js.map,sha256=0un5A2PM-Pzw3CD2Lra7DeR-IXBvyhu0rtQp-5f3vyg,555769
428
+ udata/static/chunks/29.7b551c87d15f96f30b57.js,sha256=nRa57yVoVvhIzg9m0q_6zdn4VzbtzISM16ydkm4GE5g,112037
429
+ udata/static/chunks/29.7b551c87d15f96f30b57.js.map,sha256=Ci7X5cleDCW9C7teFybaopUU6DdkxhyVeZJUYksYsfg,556246
430
430
  udata/static/chunks/3.6b5640aaff12ceffed87.js,sha256=5sDeAbfZaxCK7PnJ12_Coeunbl2uD30oLyCECV39FEg,6270
431
431
  udata/static/chunks/3.6b5640aaff12ceffed87.js.map,sha256=WWnZjH1U-J3vpJKd3Z-IYnHaMSqy9Oy__4TaT1mmXvw,29075
432
432
  udata/static/chunks/30.e446df9cf9dff85de9b8.js,sha256=vzZuAhK1JOU2E9x7UYohhgoz2lblRnf79YrCtz6-29Y,104797
@@ -453,27 +453,27 @@ udata/templates/api/oauth_authorize.html,sha256=PnzKqEJwbP0FK_SNbBpWyC3Jcdt7zS9x
453
453
  udata/templates/api/oauth_error.html,sha256=q4cbpwnokyd7cGKTESJYVC0eBzujVTD6yUlGGrHgP0c,779
454
454
  udata/templates/comments/dataset_archived.txt,sha256=RMa3cHKHfu6KU4kW_qxLdPdgw7MhGR3N2uZWZdM7iHY,325
455
455
  udata/templates/macros/forms.html,sha256=Zn8G_pRC9F7HFoA7sXh_P2xFbsXOTBRPbRO-PUYtGyg,2200
456
- udata/templates/macros/metadata.html,sha256=1Dqd1HP4gGxKlhMkdOF5-eon5cbRZn8P2RuUUlrqjEU,3383
456
+ udata/templates/macros/metadata.html,sha256=SoZ1Iq40Vc_rQmaK27v5bPrvQuOCL70yt5k1Na6B_Ys,3497
457
457
  udata/templates/mail/account_deleted.html,sha256=7INK4GqaOyqe36pXiT4xU_cAZLuNxOeY3zoy4Yjz1R4,146
458
458
  udata/templates/mail/account_deleted.txt,sha256=4EmPnt4QWMWSUkfTaMUga4BCFjGlZGKTgh9JDUzKjDk,110
459
- udata/templates/mail/badge_added_certified.html,sha256=7t8rTloEQk6LYWoOceLZ7Xpbd_eEM2DN5YkvqMrT-7E,830
459
+ udata/templates/mail/badge_added_certified.html,sha256=4woungIC2SMbAUZJaroxHd2wv8NEG8UdY_Mtjc-O_bo,828
460
460
  udata/templates/mail/badge_added_certified.txt,sha256=gD1RnUfOO9AwnCRA2q4-GctkYn1rtxuBweVK8U9VoVs,280
461
- udata/templates/mail/badge_added_public_service.html,sha256=ZPRrPR13EzoHxrET5rfKvco-AfgTnraNAPxB69Cz5_I,849
461
+ udata/templates/mail/badge_added_public_service.html,sha256=U9VrFB8kVcY0FNugZ14OA3JNBdesAhFrreubQoToMdQ,847
462
462
  udata/templates/mail/badge_added_public_service.txt,sha256=mn9sffVPd2Qqz_zQbAUPXmZUfaSqUIeA4C8-_9dZUbU,289
463
463
  udata/templates/mail/base.html,sha256=ZhMwp8gSJ7QtBYJXB8CY54wj6nb7lFYq7nASStFBM2s,7064
464
464
  udata/templates/mail/base.txt,sha256=epaSraWLlrXYEovdVROhxgOAsJmZI6RXxpNwtOX_UI4,176
465
465
  udata/templates/mail/button.html,sha256=FdCKFJYclhjDUh7CddHx8qcQjJF_7mF0s7mG_tb9cL8,417
466
- udata/templates/mail/discussion_closed.html,sha256=mD-KoMJLw4abORXDTMUqFkm9UPKh9Xi1YU0_ml4uKP0,1155
466
+ udata/templates/mail/discussion_closed.html,sha256=i98g4PPos5GQ_QE6xHma1cchnCWQxHYZPxwiulXIrEg,1153
467
467
  udata/templates/mail/discussion_closed.txt,sha256=ZvEnfsVCAHDzYlzHFCas-Grj_oiVZs3A7X7A2u1ngBs,380
468
468
  udata/templates/mail/frequency_reminder.html,sha256=McTRYsUfnvSGNIvov9SDryTlS1LTl8TMMQs_k8fAxh8,1182
469
469
  udata/templates/mail/frequency_reminder.txt,sha256=3IDPkrZEGmGm_gULSuYdq7VMKsQe0o5CZWNw8fbxpco,724
470
470
  udata/templates/mail/membership_refused.html,sha256=0pnX2aqDk3kEQBsBOlIiGwx_vBIQBWOZUQEpFE0VFVk,635
471
471
  udata/templates/mail/membership_refused.txt,sha256=rXur42ZD3W65SCblUrZqMK34RHz0oSYL4-rb_kKmE0g,217
472
- udata/templates/mail/membership_request.html,sha256=k1caB2s3nATVBR6HbBN8yMuo78EBCzXNlPpB-un5PhI,1436
472
+ udata/templates/mail/membership_request.html,sha256=2ygBg1w20jRru5shsu-4FZjzIoschtnP6TUcU0Nc_Q4,1434
473
473
  udata/templates/mail/membership_request.txt,sha256=NBxMyNYUayQC9RbeWiws4JEOm4EpagU_GkPQJZcqKps,462
474
- udata/templates/mail/new_discussion.html,sha256=7j-ymkoF7ULMPM0GPzUeSqRGpMpWNi2PXe8IavegFHk,1092
474
+ udata/templates/mail/new_discussion.html,sha256=itzbuSg-SUJCDA78fFgeEGB2t1cI5nwhfxzJYT0XLJg,1090
475
475
  udata/templates/mail/new_discussion.txt,sha256=J1LJXTePrnZsvCLUcUG505SU5mIz0glmJlwcecujap8,403
476
- udata/templates/mail/new_discussion_comment.html,sha256=Ri4LwNn39ftYKARFmzzkOXgiFXoDjkwChsJQkjY0VpI,1157
476
+ udata/templates/mail/new_discussion_comment.html,sha256=BvDL3JV5lOPgPco0n6LTKXFLbYFcRqYFJp_6D_yLmkw,1155
477
477
  udata/templates/mail/new_discussion_comment.txt,sha256=gct1ab7BVw2D-FB2D3e1t8oGtKAsvrEcRe36Lm4fr-E,383
478
478
  udata/templates/mail/new_member.html,sha256=WrpWcqgbeGGRiL9-2LoE7zWcYheDw1bcT2Qcly_G1kY,794
479
479
  udata/templates/mail/new_member.txt,sha256=h2vzrlNXcgPHgKnX3_jBPxvwkXzi0CjvA_VbLfzDdjY,274
@@ -481,7 +481,7 @@ udata/templates/mail/new_reuse.html,sha256=Yb69cb2bb5d9oEdsKUBWQ0scJ5r_WhECJMSyi
481
481
  udata/templates/mail/new_reuse.txt,sha256=Uhpcp5JccAbSNgT-keiOtwlVe-NaYJiwh9GOCDaBc_c,447
482
482
  udata/templates/mail/test.html,sha256=8oNjUUHmBnPZbrar9Qv3hg8jSesTKOqvXO6xqeO6BT0,232
483
483
  udata/templates/mail/test.txt,sha256=BWdNQPvlodCXIhfwk7N21WezrlpUenB0ChZDtsWsDj4,158
484
- udata/templates/mail/user_mail_card.html,sha256=DFS4p1neZOhSQmaJ4Szp4zkgvCvWqsPkFnZGDb_aKe4,1633
484
+ udata/templates/mail/user_mail_card.html,sha256=6w-1yJYNsC8tE3yHcrz_JK7vhtLGE485VqqpaaP7P4o,1631
485
485
  udata/templates/mail/layouts/1-column.html,sha256=cGnVjykaMK7CeO3HtSq-aWK8A-KHJ--IVjsdaQfmS_I,524
486
486
  udata/templates/mail/layouts/2-columns.html,sha256=TbYO8O0j5w7uLCSVN4liP-Y-xOplCLnDDGMnZIJ_s-c,580
487
487
  udata/templates/mail/layouts/center-panel.html,sha256=kULj5NDcuifryn_1wTeKkxaAhdmQhrYL6i7r1YjcCOM,387
@@ -515,7 +515,7 @@ udata/tests/helpers.py,sha256=r7UOxQxhceVDYRJkAdbD9p082RwqcgjBdzFPZnbbGB4,5764
515
515
  udata/tests/models.py,sha256=_V0smMb1Z6p3aZv6PorzNN-HiNt_B46Ox1fqXrTJEqk,238
516
516
  udata/tests/plugin.py,sha256=hI9Z5SIxUT8UhqZMLcNPzBqdM8-nUgtCW6Pbw2bnNsQ,11045
517
517
  udata/tests/test_activity.py,sha256=4ZHRG9GYv5I2gtMYQAnhgONP9YBqwMdKKq9T2vua6-I,2674
518
- udata/tests/test_discussions.py,sha256=EQhwd1fT9WnSbTQ7Q7Q4PJOZbDNwPsqSivUP21gJ97A,20875
518
+ udata/tests/test_discussions.py,sha256=PZokVYraNBSss5rcyPTgS4ymbf0beiwh-Wdu-uDSrCc,23958
519
519
  udata/tests/test_i18n.py,sha256=T6kFXyJyTao7m19HFlkoTzkHehogF3rnUUor44_uhaU,2935
520
520
  udata/tests/test_linkchecker.py,sha256=KxV1-PuuuqogkHf3jP6JhRsc2QG2dFmFB-vSHOiHkuU,10374
521
521
  udata/tests/test_mail.py,sha256=LK_fOBbFoqbwdaIEXO9XyGPzxY9nrT9FjyD_dlglUdQ,1643
@@ -622,9 +622,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=QA_9yeYr22WR-o8T-Aix_78FJ0TBab
622
622
  udata/translations/pt/LC_MESSAGES/udata.po,sha256=VLs_Q8RFHBn6Cw8w9r7BAgop_XBk9QwprZVObuzx1_g,41327
623
623
  udata/translations/sr/LC_MESSAGES/udata.mo,sha256=k_WnQxuJkopM1eWzKJFOok_OAWOjZhSLlB3O_ggzv3U,29086
624
624
  udata/translations/sr/LC_MESSAGES/udata.po,sha256=xJJpHjSGJbpuKhVO8AhdDdbL6F7ILmWqJkz-6-fCgu4,48168
625
- udata-6.1.7.dev25977.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
626
- udata-6.1.7.dev25977.dist-info/METADATA,sha256=J0neB6dZ38le6spK1gpoaTM-tCvH9CuoSFJEEZVozg0,109333
627
- udata-6.1.7.dev25977.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
628
- udata-6.1.7.dev25977.dist-info/entry_points.txt,sha256=XACUgLu26a0tcYEoS6v8Av8yA-LSsH1XwB5AEM4jOPg,330
629
- udata-6.1.7.dev25977.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
630
- udata-6.1.7.dev25977.dist-info/RECORD,,
625
+ udata-6.1.7.dev26008.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
626
+ udata-6.1.7.dev26008.dist-info/METADATA,sha256=GIA8XUx6ujQq_SUDYDd7RShhVcCOk3GrxAJ9JUXlgYA,109495
627
+ udata-6.1.7.dev26008.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
628
+ udata-6.1.7.dev26008.dist-info/entry_points.txt,sha256=XACUgLu26a0tcYEoS6v8Av8yA-LSsH1XwB5AEM4jOPg,330
629
+ udata-6.1.7.dev26008.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
630
+ udata-6.1.7.dev26008.dist-info/RECORD,,