udata 10.6.1.dev36082__py2.py3-none-any.whl → 10.6.1.dev36098__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 (100) hide show
  1. udata/api/fields.py +0 -17
  2. udata/auth/views.py +22 -24
  3. udata/core/activity/api.py +1 -1
  4. udata/core/dataservices/api.py +3 -3
  5. udata/core/dataservices/models.py +11 -11
  6. udata/core/dataservices/rdf.py +3 -18
  7. udata/core/dataset/api.py +4 -3
  8. udata/core/dataset/api_fields.py +14 -25
  9. udata/core/dataset/apiv2.py +8 -11
  10. udata/core/dataset/csv.py +2 -2
  11. udata/core/dataset/models.py +18 -20
  12. udata/core/dataset/rdf.py +5 -38
  13. udata/core/dataset/search.py +1 -1
  14. udata/core/discussions/api.py +3 -1
  15. udata/core/discussions/models.py +11 -15
  16. udata/core/linkable.py +16 -0
  17. udata/core/organization/api.py +1 -0
  18. udata/core/organization/api_fields.py +14 -26
  19. udata/core/organization/csv.py +1 -1
  20. udata/core/organization/models.py +13 -16
  21. udata/core/organization/rdf.py +1 -5
  22. udata/core/post/api.py +8 -8
  23. udata/core/post/models.py +9 -16
  24. udata/core/reports/models.py +2 -2
  25. udata/core/reuse/api.py +4 -3
  26. udata/core/reuse/api_fields.py +1 -7
  27. udata/core/reuse/csv.py +1 -1
  28. udata/core/reuse/models.py +15 -22
  29. udata/core/site/rdf.py +2 -3
  30. udata/core/spatial/models.py +2 -9
  31. udata/core/topic/api.py +4 -8
  32. udata/core/topic/apiv2.py +3 -8
  33. udata/core/topic/models.py +0 -5
  34. udata/core/user/api_fields.py +14 -14
  35. udata/core/user/models.py +10 -16
  36. udata/core/user/rdf.py +1 -3
  37. udata/features/territories/models.py +1 -17
  38. udata/rdf.py +1 -2
  39. udata/routing.py +3 -2
  40. udata/settings.py +2 -0
  41. udata/static/chunks/{10.471164b2a9fe15614797.js → 10.8ca60413647062717b1e.js} +3 -3
  42. udata/static/chunks/{10.471164b2a9fe15614797.js.map → 10.8ca60413647062717b1e.js.map} +1 -1
  43. udata/static/chunks/{11.83535504cd650ea08f65.js → 11.0f04e49a40a0a381bcce.js} +3 -3
  44. udata/static/chunks/{11.83535504cd650ea08f65.js.map → 11.0f04e49a40a0a381bcce.js.map} +1 -1
  45. udata/static/chunks/{13.d9c1735d14038b94c17e.js → 13.f29411b06be1883356a3.js} +2 -2
  46. udata/static/chunks/{13.d9c1735d14038b94c17e.js.map → 13.f29411b06be1883356a3.js.map} +1 -1
  47. udata/static/chunks/{17.81c57c0dedf812e43013.js → 17.3bd0340930d4a314ce9c.js} +2 -2
  48. udata/static/chunks/{17.81c57c0dedf812e43013.js.map → 17.3bd0340930d4a314ce9c.js.map} +1 -1
  49. udata/static/chunks/{19.df16abde17a42033a7f8.js → 19.0586efa786ebf09fb288.js} +3 -3
  50. udata/static/chunks/{19.df16abde17a42033a7f8.js.map → 19.0586efa786ebf09fb288.js.map} +1 -1
  51. udata/static/chunks/{8.462bb3029de008497675.js → 8.b966402f5d680d4bdf4a.js} +2 -2
  52. udata/static/chunks/{8.462bb3029de008497675.js.map → 8.b966402f5d680d4bdf4a.js.map} +1 -1
  53. udata/static/chunks/{9.07515e5187f475bce828.js → 9.033d7e190ca9e226a5d0.js} +3 -3
  54. udata/static/chunks/{9.07515e5187f475bce828.js.map → 9.033d7e190ca9e226a5d0.js.map} +1 -1
  55. udata/static/common.js +1 -1
  56. udata/static/common.js.map +1 -1
  57. udata/templates/api/oauth_error.html +1 -1
  58. udata/templates/macros/metadata.html +0 -1
  59. udata/templates/mail/account_inactivity.html +1 -1
  60. udata/templates/mail/account_inactivity.txt +1 -1
  61. udata/templates/mail/badge_added_association.html +3 -3
  62. udata/templates/mail/badge_added_association.txt +1 -1
  63. udata/templates/mail/badge_added_certified.html +3 -3
  64. udata/templates/mail/badge_added_certified.txt +1 -1
  65. udata/templates/mail/badge_added_company.html +3 -3
  66. udata/templates/mail/badge_added_company.txt +1 -1
  67. udata/templates/mail/badge_added_local_authority.html +3 -3
  68. udata/templates/mail/badge_added_local_authority.txt +1 -1
  69. udata/templates/mail/badge_added_public_service.html +3 -3
  70. udata/templates/mail/badge_added_public_service.txt +1 -1
  71. udata/templates/mail/discussion_closed.html +3 -3
  72. udata/templates/mail/discussion_closed.txt +1 -1
  73. udata/templates/mail/frequency_reminder.html +1 -1
  74. udata/templates/mail/frequency_reminder.txt +1 -1
  75. udata/templates/mail/membership_refused.html +1 -1
  76. udata/templates/mail/membership_request.html +3 -3
  77. udata/templates/mail/membership_request.txt +1 -1
  78. udata/templates/mail/new_discussion.html +3 -3
  79. udata/templates/mail/new_discussion.txt +1 -1
  80. udata/templates/mail/new_discussion_comment.html +3 -3
  81. udata/templates/mail/new_discussion_comment.txt +1 -1
  82. udata/templates/mail/new_member.html +2 -2
  83. udata/templates/mail/new_member.txt +1 -1
  84. udata/templates/mail/new_reuse.html +2 -12
  85. udata/templates/mail/new_reuse.txt +1 -3
  86. udata/templates/mail/user_mail_card.html +1 -1
  87. udata/tests/api/test_dataservices_api.py +2 -2
  88. udata/tests/api/test_datasets_api.py +2 -2
  89. udata/tests/api/test_reuses_api.py +2 -2
  90. udata/tests/api/test_topics_api.py +4 -4
  91. udata/tests/dataset/test_dataset_rdf.py +1 -9
  92. udata/tests/test_discussions.py +3 -3
  93. udata/tests/test_mail.py +8 -0
  94. udata/uris.py +28 -7
  95. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/METADATA +1 -1
  96. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/RECORD +100 -99
  97. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/LICENSE +0 -0
  98. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/WHEEL +0 -0
  99. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/entry_points.txt +0 -0
  100. {udata-10.6.1.dev36082.dist-info → udata-10.6.1.dev36098.dist-info}/top_level.txt +0 -0
udata/static/common.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e){function __webpack_require__(c){if(a[c])return a[c].exports;var r=a[c]={exports:{},id:c,loaded:!1};return e[c].call(r.exports,r,r.exports,__webpack_require__),r.loaded=!0,r.exports}var c=window.webpackJsonp;window.webpackJsonp=function(f,d){for(var t,b,_=0,n=[];_<f.length;_++)b=f[_],r[b]&&n.push.apply(n,r[b]),r[b]=0;for(t in d){var i=d[t];switch(typeof i){case"object":e[t]=function(c){var a=c.slice(1),r=c[0];return function(c,f,d){e[r].apply(this,[c,f,d].concat(a))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(c&&c(f,d);n.length;)n.shift().call(null,__webpack_require__);if(d[0])return a[0]=0,__webpack_require__(0)};var a={},r={31:0};__webpack_require__.e=function(e,c){if(0===r[e])return c.call(null,__webpack_require__);if(void 0!==r[e])r[e].push(c);else{r[e]=[c];var a=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.src=__webpack_require__.p+"chunks/"+e+"."+{0:"4dd4f378428d1eed85c8",1:"0a96f54313c89e541ccb",2:"c67aa76cc078c193aed5",3:"174a03e48d267820919b",4:"98dca3045c034c154d5f",5:"0fa1408dae4e76b87b2e",6:"d663709d877baa44a71e",7:"896bbffe39433bb598f7",8:"462bb3029de008497675",9:"07515e5187f475bce828",10:"471164b2a9fe15614797",11:"83535504cd650ea08f65",12:"1be61e0201691821bff6",13:"d9c1735d14038b94c17e",14:"bc3f6bc0a67517e7b30f",15:"2f5d8e3d4aa4c46188d7",16:"aaa39ef2d7e82594efc8",17:"81c57c0dedf812e43013",18:"56444ebd2456a4ba2201",19:"df16abde17a42033a7f8",20:"3d4e02d1205a3c9e26c5",21:"af1610ce169cf6d1cf4e",22:"6a69068a7dd9d767dea1",23:"663b89b79d755a70deef",24:"d149cf025cbbca231d88",25:"1fafd6424761185cc14b",26:"402064cda3665d56f7fc",27:"997802f273a0c88f7b6d",28:"e68c475c6ca1e2eec92c",29:"2f4a04c61d75f2ef18ab",30:"e97e10c9246818e2b4b2",32:"03cc9867716dd58b9302",33:"011b367beb543774f950"}[e]+".js",a.appendChild(f)}},__webpack_require__.m=e,__webpack_require__.c=a,__webpack_require__.p="/static/"}(function(e){for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c))switch(typeof e[c]){case"function":break;case"object":e[c]=function(c){var a=c.slice(1),r=e[c[0]];return function(e,c,f){r.apply(this,[e,c,f].concat(a))}}(e[c]);break;default:e[c]=e[e[c]]}return e}([]));
1
+ !function(e){function __webpack_require__(c){if(a[c])return a[c].exports;var r=a[c]={exports:{},id:c,loaded:!1};return e[c].call(r.exports,r,r.exports,__webpack_require__),r.loaded=!0,r.exports}var c=window.webpackJsonp;window.webpackJsonp=function(f,b){for(var t,d,_=0,n=[];_<f.length;_++)d=f[_],r[d]&&n.push.apply(n,r[d]),r[d]=0;for(t in b){var i=b[t];switch(typeof i){case"object":e[t]=function(c){var a=c.slice(1),r=c[0];return function(c,f,b){e[r].apply(this,[c,f,b].concat(a))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(c&&c(f,b);n.length;)n.shift().call(null,__webpack_require__);if(b[0])return a[0]=0,__webpack_require__(0)};var a={},r={31:0};__webpack_require__.e=function(e,c){if(0===r[e])return c.call(null,__webpack_require__);if(void 0!==r[e])r[e].push(c);else{r[e]=[c];var a=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.src=__webpack_require__.p+"chunks/"+e+"."+{0:"4dd4f378428d1eed85c8",1:"0a96f54313c89e541ccb",2:"c67aa76cc078c193aed5",3:"174a03e48d267820919b",4:"98dca3045c034c154d5f",5:"0fa1408dae4e76b87b2e",6:"d663709d877baa44a71e",7:"896bbffe39433bb598f7",8:"b966402f5d680d4bdf4a",9:"033d7e190ca9e226a5d0",10:"8ca60413647062717b1e",11:"0f04e49a40a0a381bcce",12:"1be61e0201691821bff6",13:"f29411b06be1883356a3",14:"bc3f6bc0a67517e7b30f",15:"2f5d8e3d4aa4c46188d7",16:"aaa39ef2d7e82594efc8",17:"3bd0340930d4a314ce9c",18:"56444ebd2456a4ba2201",19:"0586efa786ebf09fb288",20:"3d4e02d1205a3c9e26c5",21:"af1610ce169cf6d1cf4e",22:"6a69068a7dd9d767dea1",23:"663b89b79d755a70deef",24:"d149cf025cbbca231d88",25:"1fafd6424761185cc14b",26:"402064cda3665d56f7fc",27:"997802f273a0c88f7b6d",28:"e68c475c6ca1e2eec92c",29:"2f4a04c61d75f2ef18ab",30:"e97e10c9246818e2b4b2",32:"03cc9867716dd58b9302",33:"011b367beb543774f950"}[e]+".js",a.appendChild(f)}},__webpack_require__.m=e,__webpack_require__.c=a,__webpack_require__.p="/static/"}(function(e){for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c))switch(typeof e[c]){case"function":break;case"object":e[c]=function(c){var a=c.slice(1),r=e[c[0]];return function(e,c,f){r.apply(this,[e,c,f].concat(a))}}(e[c]);break;default:e[c]=e[e[c]]}return e}([]));
2
2
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap a7d39102b8c9209d537b"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"4dd4f378428d1eed85c8\",\"1\":\"0a96f54313c89e541ccb\",\"2\":\"c67aa76cc078c193aed5\",\"3\":\"174a03e48d267820919b\",\"4\":\"98dca3045c034c154d5f\",\"5\":\"0fa1408dae4e76b87b2e\",\"6\":\"d663709d877baa44a71e\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"462bb3029de008497675\",\"9\":\"07515e5187f475bce828\",\"10\":\"471164b2a9fe15614797\",\"11\":\"83535504cd650ea08f65\",\"12\":\"1be61e0201691821bff6\",\"13\":\"d9c1735d14038b94c17e\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"81c57c0dedf812e43013\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"df16abde17a42033a7f8\",\"20\":\"3d4e02d1205a3c9e26c5\",\"21\":\"af1610ce169cf6d1cf4e\",\"22\":\"6a69068a7dd9d767dea1\",\"23\":\"663b89b79d755a70deef\",\"24\":\"d149cf025cbbca231d88\",\"25\":\"1fafd6424761185cc14b\",\"26\":\"402064cda3665d56f7fc\",\"27\":\"997802f273a0c88f7b6d\",\"28\":\"e68c475c6ca1e2eec92c\",\"29\":\"2f4a04c61d75f2ef18ab\",\"30\":\"e97e10c9246818e2b4b2\",\"32\":\"03cc9867716dd58b9302\",\"33\":\"011b367beb543774f950\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"4dd4f378428d1eed85c8\",\"1\":\"0a96f54313c89e541ccb\",\"2\":\"c67aa76cc078c193aed5\",\"3\":\"174a03e48d267820919b\",\"4\":\"98dca3045c034c154d5f\",\"5\":\"0fa1408dae4e76b87b2e\",\"6\":\"d663709d877baa44a71e\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"462bb3029de008497675\",\"9\":\"07515e5187f475bce828\",\"10\":\"471164b2a9fe15614797\",\"11\":\"83535504cd650ea08f65\",\"12\":\"1be61e0201691821bff6\",\"13\":\"d9c1735d14038b94c17e\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"81c57c0dedf812e43013\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"df16abde17a42033a7f8\",\"20\":\"3d4e02d1205a3c9e26c5\",\"21\":\"af1610ce169cf6d1cf4e\",\"22\":\"6a69068a7dd9d767dea1\",\"23\":\"663b89b79d755a70deef\",\"24\":\"d149cf025cbbca231d88\",\"25\":\"1fafd6424761185cc14b\",\"26\":\"402064cda3665d56f7fc\",\"27\":\"997802f273a0c88f7b6d\",\"28\":\"e68c475c6ca1e2eec92c\",\"29\":\"2f4a04c61d75f2ef18ab\",\"30\":\"e97e10c9246818e2b4b2\",\"32\":\"03cc9867716dd58b9302\",\"33\":\"011b367beb543774f950\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap a7d39102b8c9209d537b\n **/"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap 779cadd9848de1c03cf9"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"4dd4f378428d1eed85c8\",\"1\":\"0a96f54313c89e541ccb\",\"2\":\"c67aa76cc078c193aed5\",\"3\":\"174a03e48d267820919b\",\"4\":\"98dca3045c034c154d5f\",\"5\":\"0fa1408dae4e76b87b2e\",\"6\":\"d663709d877baa44a71e\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"b966402f5d680d4bdf4a\",\"9\":\"033d7e190ca9e226a5d0\",\"10\":\"8ca60413647062717b1e\",\"11\":\"0f04e49a40a0a381bcce\",\"12\":\"1be61e0201691821bff6\",\"13\":\"f29411b06be1883356a3\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"3bd0340930d4a314ce9c\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"0586efa786ebf09fb288\",\"20\":\"3d4e02d1205a3c9e26c5\",\"21\":\"af1610ce169cf6d1cf4e\",\"22\":\"6a69068a7dd9d767dea1\",\"23\":\"663b89b79d755a70deef\",\"24\":\"d149cf025cbbca231d88\",\"25\":\"1fafd6424761185cc14b\",\"26\":\"402064cda3665d56f7fc\",\"27\":\"997802f273a0c88f7b6d\",\"28\":\"e68c475c6ca1e2eec92c\",\"29\":\"2f4a04c61d75f2ef18ab\",\"30\":\"e97e10c9246818e2b4b2\",\"32\":\"03cc9867716dd58b9302\",\"33\":\"011b367beb543774f950\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"4dd4f378428d1eed85c8\",\"1\":\"0a96f54313c89e541ccb\",\"2\":\"c67aa76cc078c193aed5\",\"3\":\"174a03e48d267820919b\",\"4\":\"98dca3045c034c154d5f\",\"5\":\"0fa1408dae4e76b87b2e\",\"6\":\"d663709d877baa44a71e\",\"7\":\"896bbffe39433bb598f7\",\"8\":\"b966402f5d680d4bdf4a\",\"9\":\"033d7e190ca9e226a5d0\",\"10\":\"8ca60413647062717b1e\",\"11\":\"0f04e49a40a0a381bcce\",\"12\":\"1be61e0201691821bff6\",\"13\":\"f29411b06be1883356a3\",\"14\":\"bc3f6bc0a67517e7b30f\",\"15\":\"2f5d8e3d4aa4c46188d7\",\"16\":\"aaa39ef2d7e82594efc8\",\"17\":\"3bd0340930d4a314ce9c\",\"18\":\"56444ebd2456a4ba2201\",\"19\":\"0586efa786ebf09fb288\",\"20\":\"3d4e02d1205a3c9e26c5\",\"21\":\"af1610ce169cf6d1cf4e\",\"22\":\"6a69068a7dd9d767dea1\",\"23\":\"663b89b79d755a70deef\",\"24\":\"d149cf025cbbca231d88\",\"25\":\"1fafd6424761185cc14b\",\"26\":\"402064cda3665d56f7fc\",\"27\":\"997802f273a0c88f7b6d\",\"28\":\"e68c475c6ca1e2eec92c\",\"29\":\"2f4a04c61d75f2ef18ab\",\"30\":\"e97e10c9246818e2b4b2\",\"32\":\"03cc9867716dd58b9302\",\"33\":\"011b367beb543774f950\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 779cadd9848de1c03cf9\n **/"],"sourceRoot":""}
@@ -15,7 +15,7 @@
15
15
  <h1>{{ _('OAuth Authentication Error') }}</h1>
16
16
  <p class="lead">{{ request.args.error }}</p>
17
17
  <p class="text-center">
18
- <a class="btn btn-primary btn-lg" role="button" href="{{ url_for('site.home') }}">
18
+ <a class="btn btn-primary btn-lg" role="button" href="{{ homepage_url() }}">
19
19
  <span class="fa fa-home"></span>
20
20
  {{ _('Home') }}
21
21
  </a>
@@ -17,7 +17,6 @@
17
17
  <meta property="og:image" content="{{ image }}" />
18
18
  <meta name="static-root" content="{{ static('', _burst=False) }}" />
19
19
  <meta name="api-root" content="{{ url_for('api.root') }}" />
20
- <meta name="admin-root" content="{{ url_for('admin.index') }}" />
21
20
  <meta name="api-specs" content="{{ url_for('api.specs', _external=True) }}"/>
22
21
  <meta name="apiv2-specs" content="{{ url_for('apiv2.specs', _external=True) }}"/>
23
22
  <meta name="auth-url" content="{{ url_for('security.login') }}" />
@@ -16,7 +16,7 @@
16
16
  <p style="margin: 0;padding: 0;"><b>
17
17
  {{ _(
18
18
  'If you want to keep your account, please log in with your account on %(home)s.',
19
- home=endpoint_for("site.home_redirect", "api.site", _external=True)
19
+ home=homepage_url()
20
20
  )
21
21
  }}
22
22
  </b></p>
@@ -12,7 +12,7 @@
12
12
 
13
13
  {{ _(
14
14
  'If you want to keep your account, please log in with your account on %(home)s.',
15
- home=endpoint_for("site.home_redirect", "api.site", _external=True)
15
+ home=homepage_url()
16
16
  )
17
17
  }}
18
18
 
@@ -6,14 +6,14 @@
6
6
  _('%(user)s has identified your organization "%(name)s" as an association',
7
7
  user=(
8
8
  '<a href="'|safe
9
- + badge.created_by.external_url_with_campaign
9
+ + badge.created_by.url_for(_mailCampaign=True)
10
10
  + '">'|safe
11
11
  + badge.created_by.fullname
12
12
  + '</a>'|safe
13
13
  ),
14
14
  name=(
15
15
  '<a href="'|safe
16
- + organization.external_url_with_campaign
16
+ + organization.url_for(_mailCampaign=True)
17
17
  + '">'|safe
18
18
  + organization.name|string
19
19
  + '</a>'|safe
@@ -25,7 +25,7 @@
25
25
  <td align="center">
26
26
  {{ mail_button(
27
27
  _('See the badge'),
28
- organization.external_url_with_campaign
28
+ organization.url_for(_mailCampaign=True)
29
29
  ) }}
30
30
  </td>
31
31
  </tr>
@@ -7,5 +7,5 @@
7
7
  ) }}.
8
8
 
9
9
  {{ _('You can see the badge on this page:') }}
10
- {{ organization.external_url_with_campaign }}
10
+ {{ organization.url_for(_mailCampaign=True) }}
11
11
  {% endblock %}
@@ -6,14 +6,14 @@
6
6
  _('%(user)s has certified your organization "%(name)s"',
7
7
  user=(
8
8
  '<a href="'|safe
9
- + badge.created_by.external_url_with_campaign
9
+ + badge.created_by.url_for(_mailCampaign=True)
10
10
  + '">'|safe
11
11
  + badge.created_by.fullname
12
12
  + '</a>'|safe
13
13
  ),
14
14
  name=(
15
15
  '<a href="'|safe
16
- + organization.external_url_with_campaign
16
+ + organization.url_for(_mailCampaign=True)
17
17
  + '">'|safe
18
18
  + organization.name|string
19
19
  + '</a>'|safe
@@ -25,7 +25,7 @@
25
25
  <td align="center">
26
26
  {{ mail_button(
27
27
  _('See the badge'),
28
- organization.external_url_with_campaign
28
+ organization.url_for(_mailCampaign=True)
29
29
  ) }}
30
30
  </td>
31
31
  </tr>
@@ -7,5 +7,5 @@
7
7
  ) }}.
8
8
 
9
9
  {{ _('You can see the badge on this page:') }}
10
- {{ organization.external_url_with_campaign }}
10
+ {{ organization.url_for(_mailCampaign=True) }}
11
11
  {% endblock %}
@@ -6,14 +6,14 @@
6
6
  _('%(user)s has identified your organization "%(name)s" as a company',
7
7
  user=(
8
8
  '<a href="'|safe
9
- + badge.created_by.external_url_with_campaign
9
+ + badge.created_by.url_for(_mailCampaign=True)
10
10
  + '">'|safe
11
11
  + badge.created_by.fullname
12
12
  + '</a>'|safe
13
13
  ),
14
14
  name=(
15
15
  '<a href="'|safe
16
- + organization.external_url_with_campaign
16
+ + organization.url_for(_mailCampaign=True)
17
17
  + '">'|safe
18
18
  + organization.name|string
19
19
  + '</a>'|safe
@@ -25,7 +25,7 @@
25
25
  <td align="center">
26
26
  {{ mail_button(
27
27
  _('See the badge'),
28
- organization.external_url_with_campaign
28
+ organization.url_for(_mailCampaign=True)
29
29
  ) }}
30
30
  </td>
31
31
  </tr>
@@ -7,5 +7,5 @@
7
7
  ) }}.
8
8
 
9
9
  {{ _('You can see the badge on this page:') }}
10
- {{ organization.external_url_with_campaign }}
10
+ {{ organization.url_for(_mailCampaign=True) }}
11
11
  {% endblock %}
@@ -6,14 +6,14 @@
6
6
  _('%(user)s has identified your organization "%(name)s" as a local authority',
7
7
  user=(
8
8
  '<a href="'|safe
9
- + badge.created_by.external_url_with_campaign
9
+ + badge.created_by.url_for(_mailCampaign=True)
10
10
  + '">'|safe
11
11
  + badge.created_by.fullname
12
12
  + '</a>'|safe
13
13
  ),
14
14
  name=(
15
15
  '<a href="'|safe
16
- + organization.external_url_with_campaign
16
+ + organization.url_for(_mailCampaign=True)
17
17
  + '">'|safe
18
18
  + organization.name|string
19
19
  + '</a>'|safe
@@ -25,7 +25,7 @@
25
25
  <td align="center">
26
26
  {{ mail_button(
27
27
  _('See the badge'),
28
- organization.external_url_with_campaign
28
+ organization.url_for(_mailCampaign=True)
29
29
  ) }}
30
30
  </td>
31
31
  </tr>
@@ -7,5 +7,5 @@
7
7
  ) }}.
8
8
 
9
9
  {{ _('You can see the badge on this page:') }}
10
- {{ organization.external_url_with_campaign }}
10
+ {{ organization.url_for(_mailCampaign=True) }}
11
11
  {% endblock %}
@@ -6,14 +6,14 @@
6
6
  _('%(user)s has identified your organization "%(name)s" as public service',
7
7
  user=(
8
8
  '<a href="'|safe
9
- + badge.created_by.external_url_with_campaign
9
+ + badge.created_by.url_for(_mailCampaign=True)
10
10
  + '">'|safe
11
11
  + badge.created_by.fullname
12
12
  + '</a>'|safe
13
13
  ),
14
14
  name=(
15
15
  '<a href="'|safe
16
- + organization.external_url_with_campaign
16
+ + organization.url_for(_mailCampaign=True)
17
17
  + '">'|safe
18
18
  + organization.name|string
19
19
  + '</a>'|safe
@@ -25,7 +25,7 @@
25
25
  <td align="center">
26
26
  {{ mail_button(
27
27
  _('See the badge'),
28
- organization.external_url_with_campaign
28
+ organization.url_for(_mailCampaign=True)
29
29
  ) }}
30
30
  </td>
31
31
  </tr>
@@ -7,5 +7,5 @@
7
7
  ) }}.
8
8
 
9
9
  {{ _('You can see the badge on this page:') }}
10
- {{ organization.external_url_with_campaign }}
10
+ {{ organization.url_for(_mailCampaign=True) }}
11
11
  {% endblock %}
@@ -7,14 +7,14 @@
7
7
  type=discussion.subject.verbose_name,
8
8
  user=(
9
9
  '<a href="'|safe
10
- + discussion.closed_by_org_or_user.external_url_with_campaign
10
+ + discussion.closed_by_org_or_user.url_for(_mailCampaign=True)
11
11
  + '">'|safe
12
12
  + discussion.closed_by_name
13
13
  + '</a>'|safe
14
14
  ),
15
15
  subject=(
16
16
  '<a href="'|safe
17
- + discussion.external_url_with_campaign
17
+ + discussion.url_for(_mailCampaign=True)
18
18
  + '">'|safe
19
19
  + discussion.subject|string
20
20
  + '</a>'|safe
@@ -39,7 +39,7 @@
39
39
  <td align="center">
40
40
  {{ mail_button(
41
41
  _('See the discussion'),
42
- discussion.external_url_with_campaign
42
+ discussion.url_for(_mailCampaign=True)
43
43
  ) }}
44
44
  </td>
45
45
  </tr>
@@ -12,5 +12,5 @@
12
12
 
13
13
 
14
14
  {{ _('You can see the discussion on this page:') }}
15
- {{ discussion.external_url_with_campaign }}
15
+ {{ discussion.url_for(_mailCampaign=True) }}
16
16
  {% endblock %}
@@ -23,7 +23,7 @@
23
23
  <td align="center">
24
24
  {{ mail_button(
25
25
  _('Update the dataset and associated resources'),
26
- url_for('admin.index', path='dataset/{id}/'.format(id=dataset.id), _external=True, **extras)
26
+ cdata_url(f"/admin/datasets/{dataset.slug}/")
27
27
  ) }}
28
28
  </td>
29
29
  </tr>
@@ -11,7 +11,7 @@
11
11
  dataset_frequency=dataset.frequency_str,
12
12
  due_update_days=dataset.outdated.days) }}
13
13
  {{ _('You can update the dataset and associated resources at:') }}
14
- {{ url_for('admin.index', path='dataset/{id}/'.format(id=dataset.id), _external=True, **extras) }}
14
+ {{ cdata_url(f"/admin/datasets/{dataset.slug}/") }}
15
15
 
16
16
  {% endfor %}
17
17
 
@@ -7,7 +7,7 @@
7
7
  {{ _('Your membership for the organization "%(org)s" has been refused',
8
8
  org=(
9
9
  '<a href="'|safe
10
- + org.external_url_with_campaign
10
+ + org.url_for(_mailCampaign=True)
11
11
  + '">'|safe
12
12
  + org.name
13
13
  + '</a>'|safe
@@ -8,14 +8,14 @@
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
- + request.user.external_url_with_campaign
11
+ + request.user.url_for(_mailCampaign=True)
12
12
  + '">'|safe
13
13
  + request.user.fullname
14
14
  + '</a>'|safe
15
15
  ),
16
16
  org=(
17
17
  '<a href="'|safe
18
- + org.external_url_with_campaign
18
+ + org.url_for(_mailCampaign=True)
19
19
  + '">'|safe
20
20
  + org.name
21
21
  + '</a>'|safe
@@ -38,7 +38,7 @@
38
38
  <td align="center">
39
39
  {{ mail_button(
40
40
  _('See the request'),
41
- url_for('admin.index', path='organization/{id}/'.format(id=org.id), _anchor='membership-requests', _external=True, **extras)
41
+ cdata_url(f"/admin/organizations/{org.slug}/members")
42
42
  ) }}
43
43
  </td>
44
44
  </tr>
@@ -8,5 +8,5 @@
8
8
 
9
9
 
10
10
  {{ _('You can go on your organization backoffice to accept or refuse the request') }}:
11
- {{ url_for('admin.index', path='organization/{id}/'.format(id=org.id), _anchor='membership-requests', _external=True, **extras) }}
11
+ {{ cdata_url(f"/admin/organizations/{org.slug}/members") }}
12
12
  {% endblock %}
@@ -7,14 +7,14 @@
7
7
  type=discussion.subject.verbose_name,
8
8
  user=(
9
9
  '<a href="'|safe
10
- + discussion.user.external_url_with_campaign
10
+ + discussion.user.url_for(_mailCampaign=True)
11
11
  + '">'|safe
12
12
  + discussion.user.fullname
13
13
  + '</a>'|safe
14
14
  ),
15
15
  subject=(
16
16
  '<a href="'|safe
17
- + discussion.external_url_with_campaign
17
+ + discussion.url_for(_mailCampaign=True)
18
18
  + '">'|safe
19
19
  + discussion.subject|string
20
20
  + '</a>'|safe
@@ -36,7 +36,7 @@
36
36
  <td align="center">
37
37
  {{ mail_button(
38
38
  _('See the discussion'),
39
- discussion.external_url_with_campaign
39
+ discussion.url_for(_mailCampaign=True)
40
40
  ) }}
41
41
  </td>
42
42
  </tr>
@@ -11,5 +11,5 @@
11
11
  {{ _('Title') }}: {{ discussion.title }}
12
12
 
13
13
  {{ _('You can see the discussion on this page:') }}
14
- {{ discussion.subject.external_url_with_campaign }}
14
+ {{ discussion.subject.url_for(_mailCampaign=True) }}
15
15
  {% endblock %}
@@ -7,14 +7,14 @@
7
7
  type=discussion.subject.verbose_name,
8
8
  user=(
9
9
  '<a href="'|safe
10
- + message.posted_by_org_or_user.external_url_with_campaign
10
+ + message.posted_by_org_or_user.url_for(_mailCampaign=True)
11
11
  + '">'|safe
12
12
  + message.posted_by_name
13
13
  + '</a>'|safe
14
14
  ),
15
15
  subject=(
16
16
  '<a href="'|safe
17
- + discussion.external_url_with_campaign
17
+ + discussion.url_for(_mailCampaign=True)
18
18
  + '">'|safe
19
19
  + discussion.subject|string
20
20
  + '</a>'|safe
@@ -37,7 +37,7 @@
37
37
  <td align="center">
38
38
  {{ mail_button(
39
39
  _('See the discussion'),
40
- discussion.external_url_with_campaign
40
+ discussion.url_for(_mailCampaign=True)
41
41
  ) }}
42
42
  </td>
43
43
  </tr>
@@ -12,5 +12,5 @@
12
12
 
13
13
 
14
14
  {{ _('You can see the discussion on this page:') }}
15
- {{ discussion.external_url_with_campaign }}
15
+ {{ discussion.url_for(_mailCampaign=True) }}
16
16
  {% endblock %}
@@ -7,7 +7,7 @@
7
7
  {{ _('Congratulations, you are now a member of the organization "%(org)s"',
8
8
  org=(
9
9
  '<a href="'|safe
10
- + org.external_url_with_campaign
10
+ + org.url_for(_mailCampaign=True)
11
11
  + '">'|safe
12
12
  + org.name
13
13
  + '</a>'|safe
@@ -19,7 +19,7 @@
19
19
  <td align="center">
20
20
  {{ mail_button(
21
21
  _('See the organization page'),
22
- org.external_url_with_campaign
22
+ org.url_for(_mailCampaign=True)
23
23
  ) }}
24
24
  </td>
25
25
  </tr>
@@ -7,5 +7,5 @@
7
7
 
8
8
 
9
9
  {{ _('You can go on your organization page') }}:
10
- {{ org.external_url_with_campaign }}
10
+ {{ org.url_for(_mailCampaign=True) }}
11
11
  {% endblock %}
@@ -7,7 +7,7 @@
7
7
  _('A new reuse of your dataset %(dataset)s has been published',
8
8
  dataset=(
9
9
  '<a href="'|safe
10
- + dataset.external_url_with_campaign
10
+ + dataset.url_for(_mailCampaign=True)
11
11
  + '" style="text-decoration: none;">'|safe
12
12
  + dataset.title
13
13
  + '</a>'|safe
@@ -29,17 +29,7 @@
29
29
  <td align="center">
30
30
  {{ mail_button(
31
31
  _('See the reuse'),
32
- url_for('reuses.show', reuse=reuse.id, _external=True, **extras)
33
- ) }}
34
- </td>
35
- <td align="center">
36
- {{ mail_button(
37
- _('See on the dataset page'),
38
- (
39
- url_for('datasets.show', dataset=dataset.id, _external=True, **extras)
40
- + '#reuse-'|safe
41
- + reuse.id|string
42
- )
32
+ reuse.url_for(),
43
33
  ) }}
44
34
  </td>
45
35
  </tr>
@@ -5,7 +5,5 @@
5
5
  reuse=reuse.title, dataset=dataset.name
6
6
  ) }}.
7
7
  {{ _('You can see this new reuse on its own page:') }}
8
- {{ url_for('reuses.show', reuse=reuse.id, _external=True, **extras) }}
9
- {{ _('Or in the reuse list on you dataset page:')}}
10
- {{ url_for('datasets.show', dataset=dataset.id, _external=True, **extras) }}#reuse-{{reuse.id}}
8
+ {{ reuse.url_for() }}
11
9
  {% endblock %}
@@ -1,5 +1,5 @@
1
1
  {% macro user_mail_card(user, msg=None) %}
2
- <a href="{{ user.external_url_with_campaign }}"
2
+ <a href="{{ user.url_for(_mailCampaign=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;">
@@ -739,7 +739,7 @@ class DataservicesFeedAPItest(APITestCase):
739
739
  self.assertEqual(len(entry.authors), 1)
740
740
  author = entry.authors[0]
741
741
  self.assertEqual(author.name, owner.fullname)
742
- self.assertEqual(author.href, owner.external_url)
742
+ self.assertEqual(author.href, owner.url_for())
743
743
 
744
744
  def test_recent_feed_org(self):
745
745
  owner = UserFactory()
@@ -757,4 +757,4 @@ class DataservicesFeedAPItest(APITestCase):
757
757
  self.assertEqual(len(entry.authors), 1)
758
758
  author = entry.authors[0]
759
759
  self.assertEqual(author.name, org.name)
760
- self.assertEqual(author.href, org.external_url)
760
+ self.assertEqual(author.href, org.url_for())
@@ -1304,7 +1304,7 @@ class DatasetsFeedAPItest(APITestCase):
1304
1304
  self.assertEqual(len(entry.authors), 1)
1305
1305
  author = entry.authors[0]
1306
1306
  self.assertEqual(author.name, owner.fullname)
1307
- self.assertEqual(author.href, owner.external_url)
1307
+ self.assertEqual(author.href, owner.url_for())
1308
1308
 
1309
1309
  def test_recent_feed_org(self):
1310
1310
  owner = UserFactory()
@@ -1322,7 +1322,7 @@ class DatasetsFeedAPItest(APITestCase):
1322
1322
  self.assertEqual(len(entry.authors), 1)
1323
1323
  author = entry.authors[0]
1324
1324
  self.assertEqual(author.name, org.name)
1325
- self.assertEqual(author.href, org.external_url)
1325
+ self.assertEqual(author.href, org.url_for())
1326
1326
 
1327
1327
 
1328
1328
  class DatasetBadgeAPITest(APITestCase):
@@ -602,7 +602,7 @@ class ReusesFeedAPItest(APITestCase):
602
602
  self.assertEqual(len(entry.authors), 1)
603
603
  author = entry.authors[0]
604
604
  self.assertEqual(author.name, owner.fullname)
605
- self.assertEqual(author.href, owner.external_url)
605
+ self.assertEqual(author.href, owner.url_for())
606
606
 
607
607
  def test_recent_feed_org(self):
608
608
  owner = UserFactory()
@@ -620,7 +620,7 @@ class ReusesFeedAPItest(APITestCase):
620
620
  self.assertEqual(len(entry.authors), 1)
621
621
  author = entry.authors[0]
622
622
  self.assertEqual(author.name, org.name)
623
- self.assertEqual(author.href, org.external_url)
623
+ self.assertEqual(author.href, org.url_for())
624
624
 
625
625
 
626
626
  class ReuseBadgeAPITest: