From 880a9401df1fc0a8169a86253806f0195a804aad Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Mon, 10 Feb 2020 22:14:51 +0530 Subject: [PATCH 001/150] fix: defaults not set in doc created via Onboarding Slide --- .../doctype/onboarding_slide/onboarding_slide.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/frappe/desk/doctype/onboarding_slide/onboarding_slide.py b/frappe/desk/doctype/onboarding_slide/onboarding_slide.py index 8c75d10b9a..e63c5d7628 100644 --- a/frappe/desk/doctype/onboarding_slide/onboarding_slide.py +++ b/frappe/desk/doctype/onboarding_slide/onboarding_slide.py @@ -101,10 +101,15 @@ def is_continue_slide_required(first_slide): def create_onboarding_docs(values, doctype=None, app=None, slide_type=None): data = json.loads(values) doc = frappe.new_doc(doctype) - if hasattr(doc, 'create_onboarding_docs'): - doc.create_onboarding_docs(data) - else: - create_generic_onboarding_doc(data, doctype, slide_type) + try: + if hasattr(doc, 'create_onboarding_docs'): + doc.flags.ignore_validate = True + doc.flags.ignore_mandatory = True + doc.create_onboarding_docs(data) + else: + create_generic_onboarding_doc(data, doctype, slide_type) + except Exception: + pass def create_generic_onboarding_doc(data, doctype, slide_type): if slide_type == 'Settings': @@ -117,8 +122,8 @@ def create_generic_onboarding_doc(data, doctype, slide_type): doc = frappe.new_doc(doctype) for entry in data: doc.set(entry, data.get(entry)) + doc.flags.ignore_validate = True doc.flags.ignore_mandatory = True - doc.flags.ignore_links = True doc.insert() @frappe.whitelist() From 824bf8110e551ef251de9c3567633998e6630335 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Mon, 17 Feb 2020 13:27:23 +0530 Subject: [PATCH 002/150] fix: next button for onboarding slide not enabled for link field --- frappe/public/js/frappe/ui/slides.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/ui/slides.js b/frappe/public/js/frappe/ui/slides.js index 19a6cf9263..a104ce7f84 100644 --- a/frappe/public/js/frappe/ui/slides.js +++ b/frappe/public/js/frappe/ui/slides.js @@ -149,9 +149,14 @@ frappe.ui.Slide = class Slide { bind_fields_to_action_btn() { var me = this; this.reqd_fields.map((field) => { - field.$wrapper.on('change input', () => { + field.$wrapper.on('change input click', () => { me.reset_action_button_state(); }); + field.$wrapper.on('keydown', 'input', e => { + if (e.key == 'Enter') { + me.reset_action_button_state(); + } + }) }); } From cf8863ce3e11bd21f4469e7b1c5ef41a0db56011 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Mon, 17 Feb 2020 15:47:42 +0530 Subject: [PATCH 003/150] feat: add a Skip All link to Onboarding Slide --- frappe/public/js/frappe/ui/onboarding_dialog.js | 13 ++++++++++++- frappe/public/js/frappe/ui/slides.js | 6 +++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/frappe/public/js/frappe/ui/onboarding_dialog.js b/frappe/public/js/frappe/ui/onboarding_dialog.js index 962cf988e8..dd6868da45 100644 --- a/frappe/public/js/frappe/ui/onboarding_dialog.js +++ b/frappe/public/js/frappe/ui/onboarding_dialog.js @@ -14,12 +14,20 @@ frappe.setup.OnboardingSlide = class OnboardingSlide extends frappe.ui.Slide { this.$next_btn = this.slides_footer.find('.next-btn'); this.$complete_btn = this.slides_footer.find('.complete-btn'); this.$action_button = this.slides_footer.find('.next-btn'); + if (this.help_links) { this.$help_links = $(`
`).appendTo(this.$body); this.setup_help_links(); } + + // the onboarding dialog will be closed + // and shown again on refresh until all slides are completed. + this.$skip_btn = this.slides_footer.find('.skip-btn').on('click', () => { + $('.onboarding-dialog').modal('toggle'); + this.reset_is_first_startup(); + }); } setup_form() { @@ -143,7 +151,10 @@ frappe.setup.OnboardingDialog = class OnboardingDialog { before_load: ($footer) => { $footer.find('.prev-btn').addClass('hide'); $footer.find('.next-btn').removeClass('btn-default').addClass('btn-primary action'); - $footer.find('.text-right').prepend( + $footer.find('.prev-div').prepend( + $(` + ${__("Skip All")}`)); + $footer.find('.next-div').prepend( $(` ${__("Complete")}`)); } diff --git a/frappe/public/js/frappe/ui/slides.js b/frappe/public/js/frappe/ui/slides.js index a104ce7f84..cb454548b5 100644 --- a/frappe/public/js/frappe/ui/slides.js +++ b/frappe/public/js/frappe/ui/slides.js @@ -77,7 +77,7 @@ frappe.ui.Slide = class Slide { // Form methods get_atomic_fields() { var fields = JSON.parse(JSON.stringify(this.fields)); - if(this.add_more) { + if (this.add_more) { this.count = 1; fields = fields.map((field, i) => { if (field.fieldname) { @@ -337,10 +337,10 @@ frappe.ui.Slides = class Slides { make_prev_next_buttons() { $(`
-
+ - `).appendTo(this.$footer); From 67fae4f20895a2e9daaf588da94a0e759e8ef6d5 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Mon, 17 Feb 2020 15:52:32 +0530 Subject: [PATCH 004/150] fix: remove Link Indicator from Onboarding Slide fields --- frappe/public/js/frappe/ui/onboarding_dialog.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/frappe/public/js/frappe/ui/onboarding_dialog.js b/frappe/public/js/frappe/ui/onboarding_dialog.js index dd6868da45..e7898a47d1 100644 --- a/frappe/public/js/frappe/ui/onboarding_dialog.js +++ b/frappe/public/js/frappe/ui/onboarding_dialog.js @@ -22,8 +22,6 @@ frappe.setup.OnboardingSlide = class OnboardingSlide extends frappe.ui.Slide { this.setup_help_links(); } - // the onboarding dialog will be closed - // and shown again on refresh until all slides are completed. this.$skip_btn = this.slides_footer.find('.skip-btn').on('click', () => { $('.onboarding-dialog').modal('toggle'); this.reset_is_first_startup(); @@ -33,6 +31,14 @@ frappe.setup.OnboardingSlide = class OnboardingSlide extends frappe.ui.Slide { setup_form() { super.setup_form(); const fields = this.get_atomic_fields(); + + // remove link indicator + fields.map((field, i) => { + if (field.fieldtype == 'Link') { + $('.link-btn').remove(); + } + }); + if (fields.length == 1) { this.$form_wrapper.addClass("text-center"); } else { From 7265d9c342cad0d19a79df93e05b1f22bc883bb8 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Tue, 18 Feb 2020 12:24:57 +0530 Subject: [PATCH 005/150] fix: codacy --- frappe/public/js/frappe/ui/onboarding_dialog.js | 2 +- frappe/public/js/frappe/ui/slides.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/public/js/frappe/ui/onboarding_dialog.js b/frappe/public/js/frappe/ui/onboarding_dialog.js index e7898a47d1..023e7081e6 100644 --- a/frappe/public/js/frappe/ui/onboarding_dialog.js +++ b/frappe/public/js/frappe/ui/onboarding_dialog.js @@ -33,7 +33,7 @@ frappe.setup.OnboardingSlide = class OnboardingSlide extends frappe.ui.Slide { const fields = this.get_atomic_fields(); // remove link indicator - fields.map((field, i) => { + fields.map((field) => { if (field.fieldtype == 'Link') { $('.link-btn').remove(); } diff --git a/frappe/public/js/frappe/ui/slides.js b/frappe/public/js/frappe/ui/slides.js index cb454548b5..2f5da13207 100644 --- a/frappe/public/js/frappe/ui/slides.js +++ b/frappe/public/js/frappe/ui/slides.js @@ -156,7 +156,7 @@ frappe.ui.Slide = class Slide { if (e.key == 'Enter') { me.reset_action_button_state(); } - }) + }); }); } From 0bf2f5f97229c7a73b49a67aaea3b30a89ad952d Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Sun, 23 Feb 2020 21:28:13 +0530 Subject: [PATCH 006/150] fix: styling and show skip button in first slide only --- frappe/public/js/frappe/ui/onboarding_dialog.js | 14 +++++++++----- frappe/public/less/desk.less | 9 ++++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/frappe/public/js/frappe/ui/onboarding_dialog.js b/frappe/public/js/frappe/ui/onboarding_dialog.js index 023e7081e6..f539029744 100644 --- a/frappe/public/js/frappe/ui/onboarding_dialog.js +++ b/frappe/public/js/frappe/ui/onboarding_dialog.js @@ -24,7 +24,6 @@ frappe.setup.OnboardingSlide = class OnboardingSlide extends frappe.ui.Slide { this.$skip_btn = this.slides_footer.find('.skip-btn').on('click', () => { $('.onboarding-dialog').modal('toggle'); - this.reset_is_first_startup(); }); } @@ -47,8 +46,13 @@ frappe.setup.OnboardingSlide = class OnboardingSlide extends frappe.ui.Slide { } before_show() { - (this.id === 0) ? - this.$next_btn.text(__('Let\'s Start')) : this.$next_btn.text(__('Next')); + if (this.id === 0) { + this.$next_btn.text(__('Let\'s Go')) + this.$skip_btn.removeClass('hide'); + } else { + this.$next_btn.text(__('Next')); + this.$skip_btn.addClass('hide'); + } //last slide if (this.is_last_slide()) { this.$complete_btn.removeClass('hide').addClass('action primary'); @@ -158,8 +162,8 @@ frappe.setup.OnboardingDialog = class OnboardingDialog { $footer.find('.prev-btn').addClass('hide'); $footer.find('.next-btn').removeClass('btn-default').addClass('btn-primary action'); $footer.find('.prev-div').prepend( - $(` - ${__("Skip All")}`)); + $(` + ${__("Do It Later")}`)); $footer.find('.next-div').prepend( $(` ${__("Complete")}`)); diff --git a/frappe/public/less/desk.less b/frappe/public/less/desk.less index 555216e7ee..6736fcc3c4 100644 --- a/frappe/public/less/desk.less +++ b/frappe/public/less/desk.less @@ -966,11 +966,15 @@ input[type="checkbox"] { .onboarding-dialog { .slide-body { - width: 65%; margin-right: auto; margin-left: auto; } + .slides-wrapper { + padding-left: 10px; + padding-right: 10px; + } + .modal-content { border: 1px solid #d1d8dd; box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.1); @@ -1009,6 +1013,9 @@ input[type="checkbox"] { margin-top: 15px; } + .skip-btn { + padding: 5px 0px 5px 0px; + } } /* broken image styling */ From afd1fa898f32abd93140f0684c31d63604b40b35 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Wed, 26 Feb 2020 12:56:12 +0530 Subject: [PATCH 007/150] fix: codacy --- frappe/public/js/frappe/ui/onboarding_dialog.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/ui/onboarding_dialog.js b/frappe/public/js/frappe/ui/onboarding_dialog.js index f539029744..3879768bfa 100644 --- a/frappe/public/js/frappe/ui/onboarding_dialog.js +++ b/frappe/public/js/frappe/ui/onboarding_dialog.js @@ -47,7 +47,7 @@ frappe.setup.OnboardingSlide = class OnboardingSlide extends frappe.ui.Slide { before_show() { if (this.id === 0) { - this.$next_btn.text(__('Let\'s Go')) + this.$next_btn.text(__('Let\'s Go')); this.$skip_btn.removeClass('hide'); } else { this.$next_btn.text(__('Next')); From 935e78cbc43608b406ffe5397dca1263beaf53b2 Mon Sep 17 00:00:00 2001 From: Shridhar Date: Thu, 27 Feb 2020 15:10:01 +0530 Subject: [PATCH 008/150] fix: on delete of module remove module name from modules.txt --- frappe/core/doctype/module_def/module_def.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/frappe/core/doctype/module_def/module_def.py b/frappe/core/doctype/module_def/module_def.py index 4bf2838145..0c0e7c4f45 100644 --- a/frappe/core/doctype/module_def/module_def.py +++ b/frappe/core/doctype/module_def/module_def.py @@ -39,3 +39,20 @@ class ModuleDef(Document): frappe.clear_cache() frappe.setup_module_map() + + def on_trash(self): + """Delete module name from modules.txt""" + modules = None + if frappe.local.module_app.get(frappe.scrub(self.name)): + with open(frappe.get_app_path(self.app_name, "modules.txt"), "r") as f: + content = f.read() + if self.name in content.splitlines(): + modules = list(filter(None, content.splitlines())) + modules.remove(self.name) + + if modules: + with open(frappe.get_app_path(self.app_name, "modules.txt"), "w") as f: + f.write("\n".join(modules)) + + frappe.clear_cache() + frappe.setup_module_map() From 6e8b6ad8199ac832c1410efe787260be20e46da6 Mon Sep 17 00:00:00 2001 From: Bernhard Sirlinger Date: Fri, 28 Feb 2020 09:58:53 +0100 Subject: [PATCH 009/150] chore(deps): bump markdown2 from 2.3.7 to 2.3.8 (#9573) Bumps [markdown2](https://github.com/trentm/python-markdown2) from 2.3.7 to 2.3.8. - [Release notes](https://github.com/trentm/python-markdown2/releases) - [Changelog](https://github.com/trentm/python-markdown2/blob/master/CHANGES.md) - [Commits](https://github.com/trentm/python-markdown2/compare/2.3.7...2.3.8) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index c02dedadbb..8289fcaaf8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -25,7 +25,7 @@ gunicorn==19.10.0 html2text==2016.9.19 ipython==5.8.0 Jinja2==2.10.3 -markdown2==2.3.7 +markdown2==2.3.8 maxminddb-geolite2==2018.703 ndg-httpsclient==0.5.1 num2words==0.5.5 From 5dbdc63dfcfdd9848960c9c2dd2aeac5cda5bbaa Mon Sep 17 00:00:00 2001 From: Bernhard Sirlinger Date: Fri, 28 Feb 2020 09:59:32 +0100 Subject: [PATCH 010/150] chore(deps): bump pyasn1 from 0.4.7 to 0.4.8 (#9571) Bumps [pyasn1](https://github.com/etingof/pyasn1) from 0.4.7 to 0.4.8. - [Release notes](https://github.com/etingof/pyasn1/releases) - [Changelog](https://github.com/etingof/pyasn1/blob/master/CHANGES.rst) - [Commits](https://github.com/etingof/pyasn1/compare/v0.4.7...v0.4.8) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 8289fcaaf8..5e1298e759 100644 --- a/requirements.txt +++ b/requirements.txt @@ -36,7 +36,7 @@ pdfkit==0.6.1 Pillow==6.2.2 premailer==3.6.1 psycopg2-binary==2.8.4 -pyasn1==0.4.7 +pyasn1==0.4.8 Pygments==2.2.0 PyJWT==1.7.1 PyMySQL==0.9.3 From 3edc7db2ed0670b52e7ca3498ea60cbabd148dc1 Mon Sep 17 00:00:00 2001 From: Bernhard Sirlinger Date: Fri, 28 Feb 2020 10:01:31 +0100 Subject: [PATCH 011/150] chore(deps): bump beautifulsoup4 from 4.8.1 to 4.8.2 (#9572) Bumps [beautifulsoup4](http://www.crummy.com/software/BeautifulSoup/bs4/) from 4.8.1 to 4.8.2. Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 5e1298e759..aa5d530dec 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ Babel==2.6.0 -beautifulsoup4==4.8.1 +beautifulsoup4==4.8.2 bleach-whitelist==0.0.10 bleach==2.1.4 boto3==1.10.18 From b8e0c11974bf3c6741a7cfd8f2ed874f22d7f1d3 Mon Sep 17 00:00:00 2001 From: Bernhard Sirlinger Date: Fri, 28 Feb 2020 10:04:34 +0100 Subject: [PATCH 012/150] chore(deps): bump awesomplete from 1.1.4 to 1.1.5 (#9574) Bumps [awesomplete](https://github.com/LeaVerou/awesomplete) from 1.1.4 to 1.1.5. - [Release notes](https://github.com/LeaVerou/awesomplete/releases) - [Changelog](https://github.com/LeaVerou/awesomplete/blob/gh-pages/CHANGELOG.md) - [Commits](https://github.com/LeaVerou/awesomplete/compare/v1.1.4...v1.1.5) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 66b1fe9f4f..2759d06b7d 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dependencies": { "ace-builds": "^1.4.1", "air-datepicker": "http://github.com/frappe/air-datepicker", - "awesomplete": "^1.1.2", + "awesomplete": "^1.1.5", "bootstrap": "^4.3.1", "cookie": "^0.3.1", "express": "^4.16.2", diff --git a/yarn.lock b/yarn.lock index 6c2afef3c1..4b60b18f73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -629,10 +629,10 @@ atob@^2.1.1: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -awesomplete@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/awesomplete/-/awesomplete-1.1.4.tgz#cdfcbbb2391857ff3a3340b5b1ebde7701b355e6" - integrity sha512-AgYrODNlVD3ZJ6Em54YesLnOSusuVCjoRAt0l5bi3L1Oiv5r5dkPdxVPJaG3/wnPlxRUmGcpGnK02VK7N02kCg== +awesomplete@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/awesomplete/-/awesomplete-1.1.5.tgz#1b2b5dd106d3955595619c03da472a1dc0faf0af" + integrity sha512-UFw1mPW8NaSECDSTC36HbAOTpF9JK2wBUJcNn4MSvlNtK7SZ9N72gB+ajHtA6D1abYXRcszZnBA4nHBwvFwzHw== aws-sign2@~0.7.0: version "0.7.0" From c3b3f28772675ff8b10ecf74fc8dbed16e25bf68 Mon Sep 17 00:00:00 2001 From: Bernhard Sirlinger Date: Fri, 28 Feb 2020 10:07:39 +0100 Subject: [PATCH 013/150] chore(deps): bump semantic-version from 2.8.2 to 2.8.4 (#9567) Bumps [semantic-version](https://github.com/rbarrois/python-semanticversion) from 2.8.2 to 2.8.4. - [Release notes](https://github.com/rbarrois/python-semanticversion/releases) - [Changelog](https://github.com/rbarrois/python-semanticversion/blob/master/ChangeLog) - [Commits](https://github.com/rbarrois/python-semanticversion/compare/2.8.2...2.8.4) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index aa5d530dec..6bdc81f296 100644 --- a/requirements.txt +++ b/requirements.txt @@ -55,7 +55,7 @@ requests==2.22.0 RestrictedPython==5.0 rq>=1.1.0 schedule==0.6.0 -semantic-version==2.8.2 +semantic-version==2.8.4 six==1.13.0 sqlparse==0.2.4 stripe==2.40.0 From a2c23fcea6d67127d3c216cb5baa289b4f836f3e Mon Sep 17 00:00:00 2001 From: Bernhard Sirlinger Date: Fri, 28 Feb 2020 10:08:44 +0100 Subject: [PATCH 014/150] chore(deps): bump pyyaml from 5.1 to 5.3 (#9577) Bumps [pyyaml](https://github.com/yaml/pyyaml) from 5.1 to 5.3. - [Release notes](https://github.com/yaml/pyyaml/releases) - [Changelog](https://github.com/yaml/pyyaml/blob/master/CHANGES) - [Commits](https://github.com/yaml/pyyaml/compare/5.1...5.3) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6bdc81f296..b528e4bcd8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -47,7 +47,7 @@ pypng==0.0.20 PyQRCode==1.2.1 python-dateutil==2.8.1 pytz==2019.3 -PyYAML==5.1 +PyYAML==5.3 rauth==0.7.3 redis>=3.0 requests-oauthlib==1.3.0 From c66c945398539e72fd075439a307b76eca2f9fc9 Mon Sep 17 00:00:00 2001 From: Bernhard Sirlinger Date: Fri, 28 Feb 2020 10:14:42 +0100 Subject: [PATCH 015/150] chore(deps): [security] bump mixin-deep from 1.3.1 to 1.3.2 (#9566) Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2. **This update includes a security fix.** - [Release notes](https://github.com/jonschlinkert/mixin-deep/releases) - [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4b60b18f73..6ac4666b57 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3811,9 +3811,9 @@ minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0: integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" From a5bf88247cc43122304487b9aa6e60a26508e28f Mon Sep 17 00:00:00 2001 From: Bernhard Sirlinger Date: Fri, 28 Feb 2020 10:18:10 +0100 Subject: [PATCH 016/150] chore(deps-dev): bump less from 3.9.0 to 3.11.1 (#9576) Bumps [less](https://github.com/less/less.js) from 3.9.0 to 3.11.1. - [Release notes](https://github.com/less/less.js/releases) - [Changelog](https://github.com/less/less.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/less/less.js/compare/v3.9.0...v3.11.1) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 2759d06b7d..f48861406c 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "chalk": "^2.3.2", "cypress": "^3.1.1", "cypress-file-upload": "^3.1.0", - "less": "^3.0.4", + "less": "^3.11.1", "node-sass": "^4.12.0", "rollup": "^1.2.2", "rollup-plugin-buble": "^0.19.2", diff --git a/yarn.lock b/yarn.lock index 6ac4666b57..36d5a503f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3404,12 +3404,13 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -less@^3.0.4: - version "3.9.0" - resolved "https://registry.yarnpkg.com/less/-/less-3.9.0.tgz#b7511c43f37cf57dc87dffd9883ec121289b1474" - integrity sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w== +less@^3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/less/-/less-3.11.1.tgz#c6bf08e39e02404fe6b307a3dfffafdc55bd36e2" + integrity sha512-tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g== dependencies: clone "^2.1.2" + tslib "^1.10.0" optionalDependencies: errno "^0.1.1" graceful-fs "^4.1.2" From 174bdf475a8ecce951889d4ac8c8e53332dedac5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2020 09:35:09 +0000 Subject: [PATCH 017/150] chore(deps): bump gitpython from 2.1.11 to 2.1.15 Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 2.1.11 to 2.1.15. - [Release notes](https://github.com/gitpython-developers/GitPython/releases) - [Changelog](https://github.com/gitpython-developers/GitPython/blob/master/CHANGES) - [Commits](https://github.com/gitpython-developers/GitPython/compare/2.1.11...2.1.15) Signed-off-by: dependabot-preview[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b528e4bcd8..b87bf3a5be 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,7 +14,7 @@ email-reply-parser==0.5.9 Faker==2.0.4 frontmatter==3.0.5 future==0.18.2 -GitPython==2.1.11 +GitPython==2.1.15 gitdb2==2.0.6;python_version<'3.4' google-api-python-client==1.7.11 google-auth-httplib2==0.0.3 From 752b57c042257b72cdc926f29192484a137ebf3b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 28 Feb 2020 15:45:31 +0530 Subject: [PATCH 018/150] Revert "fix(Link): Set Link DocField default if permission ignored (#9447)" (#9586) This reverts commit 8d6052a1a94897788e35f2ded6c83ae7241108a0. --- frappe/public/js/frappe/model/create_new.js | 24 ++++++++++----------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/frappe/public/js/frappe/model/create_new.js b/frappe/public/js/frappe/model/create_new.js index a801929e3d..ef559a2e99 100644 --- a/frappe/public/js/frappe/model/create_new.js +++ b/frappe/public/js/frappe/model/create_new.js @@ -135,23 +135,16 @@ $.extend(frappe.model, { && df.ignore_user_permissions != 1 && allowed_records.length); - function is_document_allowed(doc) { - return doc && (!has_user_permissions || allowed_records.includes(doc)); - } - // don't set defaults for "User" link field using User Permissions! if (df.fieldtype==="Link" && df.options!=="User") { // 1 - look in user permissions for document_type=="Setup". // We don't want to include permissions of transactions to be used for defaults. - if (df.linked_document_type==="Setup" && has_user_permissions && default_doc) { + if (df.linked_document_type==="Setup" + && has_user_permissions && default_doc) { return default_doc; } - if (is_document_allowed(df["default"])) { - user_default = df["default"]; - } - - if (!df.ignore_user_permissions && !user_default) { + if(!df.ignore_user_permissions) { // 2 - look in user defaults var user_defaults = frappe.defaults.get_user_defaults(df.options); if (user_defaults && user_defaults.length===1) { @@ -168,8 +161,11 @@ $.extend(frappe.model, { user_default = frappe.boot.user.last_selected_values[df.options]; } + var is_allowed_user_default = user_default && + (!has_user_permissions || allowed_records.includes(user_default)); + // is this user default also allowed as per user permissions? - if (is_document_allowed(user_default)) { + if (is_allowed_user_default) { return user_default; } } @@ -191,8 +187,9 @@ $.extend(frappe.model, { } else if (df["default"][0]===":") { var boot_doc = frappe.model.get_default_from_boot_docs(df, doc, parent_doc); + var is_allowed_boot_doc = !has_user_permissions || allowed_records.includes(boot_doc); - if (is_document_allowed(boot_doc)) { + if (is_allowed_boot_doc) { return boot_doc; } } else if (df.fieldname===meta.title_field) { @@ -201,7 +198,8 @@ $.extend(frappe.model, { } // is this default value is also allowed as per user permissions? - if (df.fieldtype!=="Link" || df.options==="User" || is_document_allowed(df.default)) { + var is_allowed_default = !has_user_permissions || allowed_records.includes(df.default); + if (df.fieldtype!=="Link" || df.options==="User" || is_allowed_default) { return df["default"]; } From 37116bf3fcfbb47910c813e6246c1f0dc03b1496 Mon Sep 17 00:00:00 2001 From: prssanna Date: Sat, 29 Feb 2020 13:32:48 +0530 Subject: [PATCH 019/150] feat: allow child table fields in aggregate on --- .../public/js/frappe/ui/group_by/group_by.js | 62 ++++++++++++------- .../js/frappe/views/reports/report_view.js | 2 +- 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/frappe/public/js/frappe/ui/group_by/group_by.js b/frappe/public/js/frappe/ui/group_by/group_by.js index 98d4531c5e..8303ebb119 100644 --- a/frappe/public/js/frappe/ui/group_by/group_by.js +++ b/frappe/public/js/frappe/ui/group_by/group_by.js @@ -51,21 +51,30 @@ frappe.ui.GroupBy = class { } show_hide_aggregate_on() { - this.report_view.meta.fields.forEach((field) => { - let fn = this.aggregate_function_select.val(); - if(fn === 'sum' || fn === 'avg') { - // pick numeric fields for sum / avg - if(frappe.model.is_numeric_field(field.fieldtype)) { - this.aggregate_on_select.append( - $('